自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 252

原创 字符串

后缀数组#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 192

原创 GW - ToDoList

ZOJ 3820 Building Fire StationsCF363 补题研究积性函数性质 —— 大礼包题目刘汝佳数学基础题目 —— 补题

2016-07-20 22:47:22 323

原创 TASK

7-19日晚 gw - CF博弈4 - 6 道题目 zf - kuangbin 博弈 zqy - 三角形的五心计算公式, 行列式模板剩余时间补题, 学习题解中的新算法

2016-07-19 17:15:52 216

原创 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 273

原创 ZF_20160711_CDQ

一、bzoj3262 CDQ入门题,很像整体二分。

2016-07-12 23:35:03 206

原创 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 305

原创 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

原创 20160327_F_第四周(斯坦纳树)

待总结

2016-03-27 23:20:43 932

原创 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

原创 zy-《挑战》学习笔记

《挑战程序竞赛》书的学习记录;书上一些题目的题解

2016-03-16 11:48:08 372

原创 ZF_20160313_第二周

【题一】zoj  2532题意:一个图有N个城市,M个中继站,和L条线路连接。城市发送信息,最终发送到总部(标号为0),问增大哪些线路带宽能够增加总部接收到的带宽。(考虑一条边的时候,增大这条边,别的不能变化)。 思路:暴力枚举显然不行的,考虑最大流算法,是不停地找增广路。那么如果一条边u->v,如果从源点开始不停找增广路,能够找到点u。从汇点开始反向找增广路,能够

2016-03-13 22:00:56 201

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除