codeforces 214 E [Prob 366 E] 一朝不做题,回到解放前。 题目叙述http://codeforces.com/problemset/problem/366/E其实就是找 n * m 矩阵中数字 x 和 数字 y 的最远距离。算法n * m 的。不知道 cf 上面那些人为啥都好慢。。。这题说白了就是求最远哈密顿距离。那为啥不用武森的论文呢。http://www.cppblog.com/sonicmisora/archive/2009/09/14/9
回看大学这四年 ACM 新生大一来的时候还是一个毛头小子,什么都不会。打个校赛,依稀记得第一题是给一个矩形和一个半径 r , 问能不能放进两个圆。当时wa了26发有余才过掉,成为历史奇迹。。。 由于 NOIP 的阴影,大学便开始从事 ACM 的事情。渐渐从以 ACM 为乐到最终爱上 ACM 。 一切以 ACM 为重,走火入魔到感觉世界上除了 ACM 没有啥东西了。KeepItSimpleStupid校赛之后组了个队伍
【MZ】CF 363E #211 (Div. 2) problem: 给一个n*m的矩阵,每个cell有个值。定义一种cricle,半径为r(这个我就不解释了。。)。选两个没有公共cell的circle使其和最大,并输出有多少中选择。 think 1.预处理每个circle的值。n^3. 这个先存一下每一列sum(a(i,1) + a(i,2) + …… + a(i,j))。然后找到圆心为(i,j)这个circle的第ii行时,可以O(1
2013 ACMICPC Hangzhou Ants Ants 题目描述 给一棵边权树,一直蚂蚁从一个节点爬到另一个节点获得的分数是路径上的所有边异或和。m 个询问,求第k大。 解法 首先求出根节点到所有节点的异或和,那么节点-> 节点的异或和就是 两个根到节点的异或和 的 异或和。 将所有的节点插入 Trie 树中,然后对于 n 个节点维护一个优先队列——就是这 n 个节点在Trie 树中的位置和当前的异或值。 还是把询问离线从小到
2013 ACMICPC Hangzhou Rabbit Kingdom Rabbit Kingdom 题目描述 给一个N个数的序列,M个询问,每个询问两个数L , R 。 问 [L , R] 中有多少个数和区间中所有数(除了自己都互质) 解法 首先肯定要O(N * sqrt(N)) 预处理出每个数互质的话左右分别能延伸到什么地方,记为l[i] , r[i]. 接下来就有两种解法了 Solution Of cxlove 她是爱酱,喵~ http:
【MZ】CF 356A - 356D #207 (Div. 1) A. Knight Tournament problem 输入 n m 和 m 行 每行 l r x 表示把区间[l, r]中除了x还没有值的变成x 问最后每个n的值分别是多少,没有就是0 think 线段树 code int val[333333<<2]; void update(int l, int r, int k, int L, int R, int x){ i
【MZ】CF 358D - 358E #209 (Div. 2) D. Dima and Hares problem 输入n (1 ≤ n ≤ 3000) a1 a2 ... an. b1, b2, ..., bn. c1, c2, ..., cn. n只兔子,每只兔子喂一遍,abc分别是旁边两只都饿着一直饿着一直饱着两只都饱着的joy值,按照某种顺序喂,求最大joy和。 think 两边的情况太模糊。。我纠结了很久。。 d
【MZ】CF 359C - 359E #209 (Div. 2) C. Prime Number problem: 输入 n and x (1 ≤ n ≤ 105, 2 ≤ x ≤ 109) a1, a2, ..., an (0 ≤ a1 ≤ a2 ≤ ... ≤ an ≤ 109). x是素数 1/(x^a1) + 1/(x^a2) + …… + 1/(x^an) 可以变为 t/s 其中 s = x ^ (a1 + a2 + …… + an)
【MZ】hdu 4117 AC自动机DP + 线段树优化 problem: 给你N个字符串, N(1 4), 所有穿的长度加一起不超过 3 * 105.每个串有个值。这个值[-1000, 1000]. 问不打乱字符串顺序,从中取若干个字符串,使得前一个串是后一个串的子串,求满足前面调条件的字符串值得和最大,求这个值。 think: 建立AC自动机。后面检查取了以每个字符串是最后取的串的最大值。那么检查第i个字符串的时候,就是这个字
2013 ACM-ICPC 成都总结 Board http://winguse.cloudapp.net/ 现场题目情况 A 37/160 B 44/355 C 3/14 D 40/286 E 1/2 F 122/424 G 3/52 H 165/189 I 0/46 J 105/434 真实回放 上来 SM 读A , zxa 读 B,我这个英
【MZ】hdu 2243 AC自动机 + 矩阵加速 problem: 给你 n 个病毒,问长度为 [1, m] 的,包括病毒的有多少。全都是小写字母。 think: 和 poj 2778 有点像。不一样的是: 1) 这个是求包括的,我这么做的,加一维用来表示已经包括了病毒的状态。 2) 求长度是 [1, m] 的。在矩阵里面维度变成二倍。 [A 1] [1 0] 左下面的 1 就是最后所求。A是矩阵的话,就把 1 变成 I
【MZ】ZOJ 3494 BCD Code AC自动机+数位DP problem: 给你 n 个由 01 串组成的病毒。(0 一个数的 BCD 编码为每个数字变成四位的二进制(如127 would be:0001 0010 0111)。 问从x到y有多少个数其BCD编码中没有病毒。(0 think: 用 AC 自动机得到每个状态,每个状态是否已经构成一个病毒,每个状态后面加一个数字后转移到哪个状态。 有了这些处理,就是个简单的数位 DP 了。
【字符串】转自小岛 【专题】字符串理论(建设中。。) Posted on November 20, 2012 by xiaodao 课文 http://www.cppblog.com/mythit/archive/2009/04/21/80633.html http://hi.baidu.com/htwvlmsfqsnpswr/item/497be6079be1b668d45a11af ht
【DP】 题源:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=27634 题意:三个数,第一个数N, R, Q。 1N < 101, 000, 0R Q1, 000。找出最大的没有前导零的由 N 的若干位不打乱顺序构成的数,设这个数%Q==R. 如果不存在输出Not found 思路: 复杂度1000(N长度)*1000
ACMICPC 2013 长沙 F 题Curve in Circle 题目链接 http://acm.zju.edu.cn/changsha/showProblem.do?problemId=27 题目大意 一个半径为 R 的洞里面有一个半径为 r 的圆盘, 圆盘内部有个凸包,每个点给你。用一支笔画住洞和圆盘连线延长线的凸包上点,在凸包上转一圈,问形成的路径长度是多少。 Tag 计算几何·凸包、点 数值积分·自适应辛普森、路径积分 求导 解法
2013-ACMICPC Nanjing Online 05 Polygon Polygon 题目大意 给一个简单多边形和一条抛物线,问抛物线在简单多边形内部的长度和是多少。 Tag 积分·辛普森 计算几何·点,线 解析几何 解法 给一个例子——多边形 ABCDEF和抛物线 我们算出抛物线和多边形的焦点 GHIJ。 那么就能很简单确定我们需要的积分区间 G->H 和 I -> J 于是我们要做的事情就简单了—— 1.算出来每条线段与抛物线
2013多校九1003-HDU4688-DP+计算几何 不讲题意了。 思路: 状态就是DP(i, j)表示i前面的切好了,j后面的切好了,求i到j这一节的答案。 DP思想就是这样。 计算几何真心不会写。计算几何是抄师傅的。 const int N = 222; const double eps = 1e-10; int vis[N][N];//这个状态求过 double res[N][N]; double to[N][2];
补一个简单的数据结构——带权并查集 讲解 http://www.cnblogs.com/wally/archive/2013/06/10/3130527.html Code int fa[N]; LL dist[N]; void init() { for (int i=1;i<=n;++i) { fa[i]=i; } RST(dist); } int find(int x){ int y =
【Learning】跟着kuangbin巨巨学 概率dp 资料 http://www.cnblogs.com/kuangbin/category/417528.html 虐题 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28939#overview
FFT Module #define L(x) (1 << (x)) const double PI = acos(-1.0); const int N = 17, Maxn = L(N + 1); double ax[Maxn], ay[Maxn], bx[Maxn], by[Maxn] struct FFT { private : int revv(int x, int bits)