题目大意给你一个n个点m条边的无向无环图,在尽量少的节点上放灯,使得所有边都被照亮。每盏灯将照亮以它为一个端点的所有边。在灯的总数最小的前提下,被两盏灯同时被照亮的边数应该尽量大。这题教会了我一个很有用的技巧:有两个所求的值要优化,比如让a尽量小,b也尽量小那么可以转化为让M*a+b尽量小,其中M应...
分类:
其他好文 时间:
2015-05-27 11:54:59
阅读次数:
121
一.问题来源 来源于换关键字,从LSH转换为hash检索,这要感谢李某。二.解析 笔者认为关键思想是数据降维后使用矩阵旋转优化,其他和LSH一样的。2.1 PCA降维 先对原始空间的数据集X∈Rn×d用PCA进行降维处理,设经过PCA降维后的数据集为V∈Rn×c,该问题就可以转化为将该数据集中...
分类:
其他好文 时间:
2015-05-27 11:36:09
阅读次数:
118
看到这题,是个OIer应该都能想到最小割,然后条件反射写最大流,然后敲ISAP,Dinic,.......然后TLE掉了= =
= =
本蒟蒻就是这样,然后去ym了各种题解,最后发现这是一个特殊的最大流模型,可以转化为最短路。现在讲一下详细建图方法。详见《两极相通—浅析最大最小定理在信息学竞赛中的应用》by 周冬
显然这个图是一个平面图,并且s,t在两个没有边界的平面上,这样的图称为s...
分类:
其他好文 时间:
2015-05-25 10:15:20
阅读次数:
115
// 10635 Prince and Princess LCS 变 lIS
// 本意求LCS,但是规模有60000多,复杂度肯定不够
// 注意如果俩个序列的值的范围相同,那么可以在一个
// 串中记录在另外一个串中的位置。这样就可以转化成
// 最长上升子序列的问题啦,复杂度是nlogn,可以ac
// 这题,还是挺有考究的价值的,很不错
// 哎,继续练吧。。。。。
#include...
分类:
其他好文 时间:
2015-05-19 20:57:34
阅读次数:
104
题目大意是给定一串1到n的排列(设为数组a),求其中满足a[x]
直接求这样的排列个数并不好求,我们可以转化为求a[x]
用left数组记录i位置前比a[i]小的元素个数,left数组可由树状数组预处理得到,那么我们可以得到求排列个数的公式(具体见码)
#include
#include
#include
#include
#include
#include
#inc...
分类:
编程语言 时间:
2015-05-18 23:02:03
阅读次数:
140
连接 :
??
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1082
题目可以将每个人的两种适应度转化为一个在坐标系里的矩形。假设音量为x轴,空调为y轴。
那么题目要求的可以转化为 在所有的矩形里选择一个点 这个点可以覆盖最多的矩形。
题目可以进一步转化 需要用到扫描线,只考虑每个矩形的上边和下边,每个边都构成一个扫描线(沿着y轴方向...
分类:
其他好文 时间:
2015-05-15 17:50:17
阅读次数:
159
题目:在一个n*n的棋盘上,格子标号1~n*n,现在有两个人从1跳到n*n(不走重复点),
现在要求去掉最少的中间点,使得路径是一样的。
分析:dp,LIS,LCS。问题是求最大公共子序列,数据较大需要O(nlgn)算法。
发现题目中的数据是不重复的,所以可以转化成最大上升子序列;
记录序列1中每个元素对应的顺序,将序...
分类:
其他好文 时间:
2015-05-13 23:13:48
阅读次数:
192
链接 :
??
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1612
题意: 给一个矩阵A 大小N*N, B = A^1 + A^2 + A^3 + .... A^n , B中是否存在非0项。
题目可以转化为 N个点 编号为1-n, 对于任意点v,经过一些任意的步长到达u (u为所有点集的任意一个)。离散数学里有图的矩阵相关知识...
分类:
编程语言 时间:
2015-05-12 01:42:40
阅读次数:
149
要我们求小于n并且不与n互素的数字的和, 那么可以转化为1->(n-1)的和减去小于n且与n互素的数字的和首先,有gcd(n,i)=1, 那么gcd(n,n-i)=1, 这是因为如果a%s=0, b%s=0, 那么(a-b)%s=0所以gcd(n,i)=1, 那么gcd(n,n-i)=1, 如果gc...
分类:
其他好文 时间:
2015-05-09 10:06:33
阅读次数:
144
一、生成随机日期例如,生成一个2015年内的任意日期:/* * 分析:2015年内的任意日期,即日期范围是(2015-01-01, 2015-12-31) * 可以转化为 2015-01-01 + (0, 365), * 其中,2015-01-01 就是'指定日期’; (0, 365) 就是'指定范围’*/1. 首先确定2015年1月1日的日期整数:select to_char(to_date('...
分类:
数据库 时间:
2015-05-08 22:03:10
阅读次数:
326