08 2015 档案

AC自动机模板,可重新build
摘要:struct AC_automation { int L; int next[maxnode][sigma_size]; int val[maxnode]; int fail[maxnode], last[maxnode]; int newnode() { ... 阅读全文

posted @ 2015-08-27 15:22 一个西瓜 阅读(189) 评论(0) 推荐(0) 编辑

Poj2480欧拉函数
摘要:枚举n的约数d,∑d*phi(d) 就是所求答案,剩下的就是参考别人的证明。化简 p^i*phi(p^(k-i)) 可得 p^k - p^(k-1) ,注意特判 k==i的情况,注意LL。#define _CRT_SECURE_NO_WARNINGS#pragma comment(linker, "... 阅读全文

posted @ 2015-08-25 11:15 一个西瓜 阅读(155) 评论(0) 推荐(0) 编辑

Poj1456并查集
摘要:线段树可以搞搞,按端点排个序,然后每次找端点以内最大的,然后删除。学了下并查集的搞法。先按价值贪心,每次拿走一个价值的时候,将这个价值所在集合的日期,推前一天,表示接下来日期在这段数内的物品只能在这段时间之前取,这个物品能取得日期为0的时候代表没法取了。#pragma comment(linker,... 阅读全文

posted @ 2015-08-14 16:57 一个西瓜 阅读(466) 评论(0) 推荐(0) 编辑

CF558E - A Simple Task线段树
摘要:给出一个小写字母组成的字符串,然后q个操作,a,b,c ,c为0 ,将区间 [a,b] 按逆字典序排,c为1,将此区间按字典序排。用一颗线段树,维护每个节点各个字母出现的种类数,每次操作操作后,暴力将字母a组成的区间,字母b组成的区间等等,区间内所有元素更新为a,b,等等。打个lazy标记,区间更新... 阅读全文

posted @ 2015-08-13 21:04 一个西瓜 阅读(295) 评论(0) 推荐(0) 编辑

Hdu3501容斥原理
摘要:题意:问小于n且不与n互质的数的和是多少。容斥原理求出和n互质的和,然后用 n*(n-1)/2 减以下,注意溢出。#pragma comment(linker,"/STACK:102400000,102400000") #define _CRT_SECURE_NO_WARNINGS#include#... 阅读全文

posted @ 2015-08-13 20:57 一个西瓜 阅读(175) 评论(0) 推荐(0) 编辑

一个GCD定理
摘要:若GCD(a,b) = 1,GCD(a,a-b) = 1 阅读全文

posted @ 2015-08-13 14:39 一个西瓜 阅读(120) 评论(0) 推荐(0) 编辑

Hdu1695容斥原理
摘要:就是计算 区间[1,b/k] [1,d/k] 互质的对数,(3,4) 和(4,3)算一种。每次只加比他大的就行了。#pragma comment(linker,"/STACK:102400000,102400000") #define _CRT_SECURE_NO_WARNINGS#include#... 阅读全文

posted @ 2015-08-13 11:38 一个西瓜 阅读(168) 评论(0) 推荐(0) 编辑

Hdu2841容斥原理
摘要:人在(0,0)点,问n*m的矩阵上的点有多少可以与人直接可见,其实就是矩阵上点与(0,0)点的形成的斜率种类数。#pragma comment(linker,"/STACK:102400000,102400000") #define _CRT_SECURE_NO_WARNINGS#include#i... 阅读全文

posted @ 2015-08-13 10:47 一个西瓜 阅读(287) 评论(0) 推荐(0) 编辑

Poj2773容斥原理
摘要:题意:求第k个与m互质的数。容斥原理求出[1,L]与m互质的数,然后二分k即可。#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#include#include#include#include#include#includ... 阅读全文

posted @ 2015-08-13 10:24 一个西瓜 阅读(173) 评论(0) 推荐(0) 编辑

Hdu4812点分治
摘要:题意:在树上找一条链,使得链上点的乘积对1e6+3取模为k由于mod是质数,a*b%mod = c -> b = inv[a] * k;剩下就是树上的点分治了,每次划分重心之后,将所有点到根的距离存入hash表,并且在存入hash表的同时,可以查找此子树内过根符合条件的路径端点,并更新答案,每次以重... 阅读全文

posted @ 2015-08-13 10:21 一个西瓜 阅读(697) 评论(0) 推荐(0) 编辑

Hdu4135容斥原理
摘要:求A到B之间有多少个数能与N互质。学了下容斥原理的写法, 想将N分解质因数,然后容斥原理,N - 单个质因数倍数个数+2个质因数倍数的个数-3个质因数的个数......#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#in... 阅读全文

posted @ 2015-08-11 19:56 一个西瓜 阅读(156) 评论(0) 推荐(0) 编辑

Splay小结
摘要:有关论文:运用伸展树解决数列维护问题算法合集之《伸展树的基本操作与应用》splay的伸展操作 splay(x,goal)将x节点移到goal节点的下方,通过左旋和右旋基本操作实现,其实现过程在论文中有详细介绍。对于用splay去维护一个数列,有以下常用操作。1.splay(x,goal) 将结点k旋... 阅读全文

posted @ 2015-08-07 22:15 一个西瓜 阅读(205) 评论(0) 推荐(0) 编辑

点分治小结
摘要:有关点分治的论文:国家集训队2009论文集分治算法在树的路径问1.树的重心:删去某个节点,使得结点最多的树结点最少,这个结点称为树的重心。2.每次选取树的重心,对其子树进行分治,递归深度最坏是 logn,论文中有证明。3.基本解法,如果求点对对数,分为路径经过根与不经过根两种情况,我们需要求对于每个... 阅读全文

posted @ 2015-08-02 16:37 一个西瓜 阅读(160) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示