2015年8月27日

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) 编辑

2015年8月25日

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) 编辑

2015年8月14日

Poj1456并查集

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

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

2015年8月13日

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) 编辑

导航