- 博客(31)
- 收藏
- 关注
原创 ZF_20160921_Topcoder
SRM522 div1 03#include<cstdio>#include<cstring>#include<vector>#include<set>#include<map>#define ll long long#define For(ir,S) for(typeof(S.begin()) ir = S.begin(); ir!=S.end(); ir++)using names
2016-09-21 11:39:44
265
原创 卷积
n次多项式 f(x) = [ a0, a1, …, an-1 ] 卷积c(x) = a(x) ⊗ b(x), ci = Σ aj * bi-jn次多项式可以用n个点来唯一表示,即点值表达式。 范德蒙行列式 * 系数向量 = Y向量 a(x) 表示为 b(x)表示为 c(x)表示为hdu 1402#include<cstdio>#include<cstring>#include<cma
2016-08-12 12:39:14
505
原创 20160811_ZF_MUL8
1003 1、暴力枚举是可以过的 2、判断一个集合(用二进制表示)中两个点是否相连,如果两两不相连,那么所需要的颜色数为1 3、用一个集合的子集更新自身for(int p = state; p; --p&=state){ // p就是state的子集}#include<cstdio>#include<cstring>#include<algorithm>using names
2016-08-11 21:08:38
303
原创 20160808_ZF_数论
一、线性筛namespace G{ bool vis[_+10]; int pnt,pri[_+10],phi[_+10],miu[_+10]; void go() { phi[1]=miu[1]=1; for(int i = 2;i <= _; i++) { if(!vis[i])
2016-08-08 12:18:31
277
原创 训练计划
1 后缀数组, 后缀自动机, AC自动机2 莫比乌斯反演, 中国剩余定理, 积性函数3 半平面交, 最近点对, 凸包4 高斯消元, 生成函数5 2-SAT, 割点和桥6 网络流, 欧拉图7 主席树, 莫队8 概率dp, 数位dp, 斜率dpgw从后向前, zf从前向后
2016-07-29 12:29:43
253
原创 字符串
后缀数组#include<cstdio>#include<cstring>#include<string>#include<algorithm>#define ll long longusing namespace std;const int _ = 100004;namespace SA{ int dat[_],sa[_], rk[_], hei[_]; int wa
2016-07-28 20:40:01
207
原创 数论
最大公约数ll gcd(ll a,ll b){ if(a==0)return b; return gcd(b%a,a);}扩展欧几里得ll Extended_Euclid(ll a,ll b,ll &x,ll &y){ ll d; if(b==0) { x=1;y=0; return a; } d=Exte
2016-07-28 20:36:05
290
原创 最大流
hdu5073#include<cstdio>#include<cstring>#include<algorithm>#include<queue>#define clr(x,y) memset(x,y,sizeof(x))using namespace std;const int inf=0x3f3f3f3f;const int _=600;int n, m,ans;int le
2016-07-25 18:27:01
359
原创 面积期望
一个棋盘上一个点,左a右b上c下d 覆盖这个棋子的矩形面积的期望值为 A=a/(a+1) B=b/(b+1) C=c/(c+1) D=d/(d+1) 期望面积S = sum{矩阵中9个元素} | a+1 | ABCD | b+1 | * | c+1 d+1 1| | 1 |
2016-07-25 16:34:17
1019
原创 20160722_2016mul.01
0001 Abandoned country 生成树0002 Chess SG函数0004 GCD STL维护
2016-07-22 10:13:17
193
原创 GW - ToDoList
ZOJ 3820 Building Fire StationsCF363 补题研究积性函数性质 —— 大礼包题目刘汝佳数学基础题目 —— 补题
2016-07-20 22:47:22
324
原创 TASK
7-19日晚 gw - CF博弈4 - 6 道题目 zf - kuangbin 博弈 zqy - 三角形的五心计算公式, 行列式模板剩余时间补题, 学习题解中的新算法
2016-07-19 17:15:52
217
原创 ZF_20160717
天梯赛 LV2-008 Manacher算法#include <iostream>#include <string>#include <cstring>using namespace std;void findBMstr(string& str){ int *p = new int[str.size() + 1]; memset(p, 0, sizeof(p)); i
2016-07-17 20:14:56
274
原创 ZF_20160708_Region2014广东
A题 CDQ分治,待做。B题 枚举矩形的左下角和右上角。E题 时间给的比较宽,所以暴力就可以了。
2016-07-08 17:28:48
249
原创 ZF_20160704_CF15X
246E 树上每个节点对应一个字符串,指定子树和深度,求不同字符串个数。 STL解决。#include<cstdio>#include<cstring>#include<algorithm>#include<map>#include<set>#include<vector>#include<utility>#include<string>using namespace std;
2016-07-04 22:55:24
369
原创 ZF_20160702_Region2013长春
I题 字符串哈希#include<cstdio>#include<cstring>#include<algorithm>#include<map>#define ll long longusing namespace std;ll mod=1e12+7,t=1331;ll len,m,l,ans;char c[100010];ll sta[100010],top;map<ll,
2016-07-02 22:32:41
257
原创 ZF_20160628_Nod.LV4
nod1060 求反素数,模板题。 注意不要溢出long long。void dfs(ll cur,ll cnt,ll lim,ll k) { if(cur>MAX)return; if(divn<cnt)divn=cnt,val=cur; if(divn==cnt&&val>cur)val=cur; for(ll i=1;
2016-06-28 02:55:25
214
原创 ZQY 2016.06 刷题记录
ZQY 2016.06 刷题记录51nod 1070博弈题,通过打表可以发现当n为斐波那契数列时B获胜,否则A获胜。算出1到1e9的斐波那契数列,然后查找即可。51nod 1103将数组a的前缀和mod n算出来;1. 如果有0,那么便是要求的结果2. 如果没有0,根据抽屉原理,必然存在两个余数一样的前缀和,两者之间的数即是要求的数。51nod
2016-06-27 02:43:05
306
原创 ZF_20160625_Nod.LV5
1020 逆序排列 1-n逆序对数为k,求这种序列有多少个? 动态规划,加上一个前缀和。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int f[1001][20001],sum[2][20001],n=1000,k=20000;const int mod=1e9+7;int main(
2016-06-26 00:06:37
265
原创 ZF_20160614_计蒜客
初赛一 求所有互质节点距离和 1、树形dp 2、质因数的容斥原理#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#define ll long long#define clr(x,y) memset(x,y,sizeof x)using namespace std;ll pri[510],vi
2016-06-14 19:03:56
357
原创 zy-题目总结
poj2392 poj1742两个问题都是多重背包问题。即给定每件物品的确定的件数,求可以得到的最大价值。 这类问题有两种解决方法。、一种是把件数c分解成若干个件数的集合,然后我们可以用这些集合里的件数来组成1..c的任何状态,我们比较自然地能想到把它们分解用二进制分解。如7(111)就可以用110,11,1来表示。所以把每一个重复的件数进行一个log2的转化,就成了一个01背包。第二种解决方法
2016-05-25 20:08:14
264
原创 zy-题目总结
poj1185状态压缩DP题目大意 n*m的地图,由’H’或P组成。’P’则可以在上面放炮弹,炮弹可以攻击到上下左右各两个方格的位置。在防止误伤的情况下,求最大放置的炮弹数。这种问题,一个很重要的处理(优化)在于首先用dfs把每一行的可行状态给先给预处理出来,并且计算出这个状态的1的个数防止后面重复计算。对于第i行,我们把所有的状态放在s[i][j]中。 每一行的状态受到前两行的状态的影响。f[
2016-05-22 17:55:57
325
原创 zy-《挑战》学习笔记
3.5 网络流最大流从点s传输数据到t,每条边都有最大传输量(即边的容量),求最大传输量。基础方法:Ford-Fulkerson,多次进行深度优先搜索寻找增广路,并更新残余网络(正向边减去这条路的流量,反向边增加),直至找不到增广路为止。 优化算法:Dinic,每次寻找最短的增广路。每次先进行一次BFS,考虑从近距离顶点指向远距离顶点的分层图,在上面DFS寻找最短增广路。此外需要注意的是,在进行
2016-04-16 11:31:10
413
原创 树形dp总结
本次复习了一下树形dp,其中大部分的题目都与记录最长路径以及树上背包有关。个人感觉,做和树有关的动态规划的题目需要注意一下将原来的问题进行转化。A. Starship Troopers题意:m个士兵从1节点出发,每个节点消耗x个士兵得到w 题解:树上背包B. Strategic Game题意:求最小个数的点覆盖所有的边 题解:01树形动态规划 拓展:求最少的点覆盖所有点,大略想了一下大概需要
2016-03-28 17:18:40
827
原创 20160321_F_第三周
【题目一】Hdu 3926 同构图【题意】给你2个图,最大度为2.问两个图是否相似【题解】本质是并查集,但是细节是在是恶心死人了。。。1.最大度为2.说明这个图可能有多个连通分量,每个连通分量要么是环,要么是链。2.然后遍历每个连通分量,记录该连通分量的结点个数,以及该连通分量是环还是链。3.将第一个图按照结点个数排序(若子结点个数相同,则对链先排序)4.将第二
2016-03-21 22:16:28
289
原创 AC自动机复习总结
传送门 如果你想真正的了解ac自动机,前提是了解kmp和trie树,注意其中的fail指针的用法; 做题的感悟: 个人觉得在构建fail指针的时候,可以通过fail指针的构建完成一些对数据的处理,比如一些没有被mark的状态mark掉,比如进行最短路径的转移等等,还有通过矩阵加速来解决问题A. 病毒侵袭AC自动机的水题,只要求判断主串中是否包含至多三个子串,并输出B. 病毒侵袭持续
2016-03-21 22:15:18
5808
1
原创 zy-c++ string 学习小结
字符串是常见的操作之一,熟练地运用一些常见的字符数组和字符串操作,有时能够大大提高效率。因此,简答学习了一下。主要通过程序实现的方式。具体可见代码。#include #include #include using namespace std;int main(int argc, const char * argv[]) {//读入 string s; //cin >> s
2016-03-21 10:40:20
247
原创 ZF_20160313_第二周
【题一】zoj 2532题意:一个图有N个城市,M个中继站,和L条线路连接。城市发送信息,最终发送到总部(标号为0),问增大哪些线路带宽能够增加总部接收到的带宽。(考虑一条边的时候,增大这条边,别的不能变化)。 思路:暴力枚举显然不行的,考虑最大流算法,是不停地找增广路。那么如果一条边u->v,如果从源点开始不停找增广路,能够找到点u。从汇点开始反向找增广路,能够
2016-03-13 22:00:56
202
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人