03 2016 档案

摘要:kd树模板。这玩意儿我现在理解的还不是很透彻因此暂时没有更多的解释。 阅读全文

posted @ 2016-03-31 19:03 ziliuziliu 阅读(167) 评论(0) 推荐(0) 编辑

摘要:平面最近点对模板题。 阅读全文

posted @ 2016-03-29 16:53 ziliuziliu 阅读(134) 评论(0) 推荐(0) 编辑

摘要:一定注意inf要开的非常大。要不然。。。嘿嘿嘿。 因为流量可能有交叉,那么要b1,b2进行交换再来跑一次。 1A很爽。 阅读全文

posted @ 2016-03-28 17:27 ziliuziliu 阅读(103) 评论(0) 推荐(0) 编辑

摘要:这个故事告诉我们,二分图偏差一点点就错。 1和n+1,n和2*n难道不能看成同一个点吗啊魂淡。。。。。。。 要遵守二分图的对称美。 阅读全文

posted @ 2016-03-27 20:43 ziliuziliu 阅读(146) 评论(0) 推荐(0) 编辑

摘要:一个最小割模型吧。。。。1连源,0连汇,朋友之间互相连,最小割等于最大流。 阅读全文

posted @ 2016-03-27 17:10 ziliuziliu 阅读(156) 评论(0) 推荐(0) 编辑

摘要:点分治模板题。 阅读全文

posted @ 2016-03-25 19:19 ziliuziliu 阅读(166) 评论(0) 推荐(0) 编辑

摘要:第一次写分块。黄学长的模板好漂亮。 由于既要保存原始的位置关系,又要有分块的排序,所以开两个数组。 阅读全文

posted @ 2016-03-24 15:40 ziliuziliu 阅读(192) 评论(0) 推荐(0) 编辑

摘要:一个很巧的地方是:既然是所有的人加减工资,那么可以直接在全局上修改。 然而直接用value+delta这样的形式是不对的,因为后来的人并没有经受前面的考验。 所以我们要在splay里面保存value-delta,然后在输出权值的时候加上目前的delta即可。 阅读全文

posted @ 2016-03-23 20:22 ziliuziliu 阅读(281) 评论(0) 推荐(0) 编辑

摘要:嘿嘿嘿。splay模板题。 阅读全文

posted @ 2016-03-22 21:35 ziliuziliu 阅读(229) 评论(0) 推荐(0) 编辑

摘要:我们考虑一个暴力:若两点求题目中所需距离,那么选一个点到根的路径上所有点权+1。然后求另一个点到根的点权和即可。 然后?这个操作是可加的,可减的,因此可以具备前缀操作的性质。 把所有询问离线,然后链剖。 阅读全文

posted @ 2016-03-22 17:10 ziliuziliu 阅读(224) 评论(0) 推荐(0) 编辑

摘要:树剖。观察这样一个事实:一个子树上的区间一定是连续的。打lazy标记即可。 阅读全文

posted @ 2016-03-21 20:18 ziliuziliu 阅读(228) 评论(0) 推荐(0) 编辑

摘要:呀这个还有代码编辑器啊。。我今天才发现。 链剖水题。维护区间左端点和右端点的颜色。 阅读全文

posted @ 2016-03-18 22:58 ziliuziliu 阅读(155) 评论(0) 推荐(0) 编辑

摘要: 出题人的语文水平?。。。 #include<iostream>#include<cstdio>#include<cstring>#define maxn 1000050using namespace std;int cnt[maxn],a[maxn/10],n,s[maxn];int main() 阅读全文

posted @ 2016-03-15 20:06 ziliuziliu 阅读(186) 评论(0) 推荐(0) 编辑

摘要:#include<iostream>#include<cstdio>#include<cstring>using namespace std;int v,n,r[5050],dp[50050];int main(){ scanf("%d%d",&v,&n); for (int i=1;i<=n;i+ 阅读全文

posted @ 2016-03-14 23:47 ziliuziliu 阅读(109) 评论(0) 推荐(0) 编辑

摘要:单调队列模板题。 #include<iostream>#include<cstdio>#include<cstring>#define maxn 1000050using namespace std;int n,k,num[maxn],ans1[maxn],ans2[maxn];int q1[max 阅读全文

posted @ 2016-03-14 23:09 ziliuziliu 阅读(136) 评论(0) 推荐(0) 编辑

摘要:这题细节怎么如此多。。。。、 dp[i][j]表示i位数第一位为j的windy数,然后容斥乱搞。 注意细节! #include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>using namesp 阅读全文

posted @ 2016-03-13 21:43 ziliuziliu 阅读(148) 评论(0) 推荐(0) 编辑

摘要:MANACHER模板题。 #include<iostream>#include<cstdio>#include<cstring>using namespace std;char s[1000500],now[2000500];int l,num[2000500];void make_table(){ 阅读全文

posted @ 2016-03-13 18:40 ziliuziliu 阅读(98) 评论(0) 推荐(0) 编辑

摘要:我们发现每个数被开平方的次数不是太多。 然后1开平方还是1。 然后怎么办? 暴力啊!只要找到没有1的地方暴力做就可以了。 #include<iostream>#include<cstdio>#include<cstring>#include<cmath>#define maxn 100500usin 阅读全文

posted @ 2016-03-13 17:30 ziliuziliu 阅读(173) 评论(0) 推荐(0) 编辑

摘要:深搜。 然而怎么割都有可能,所以每一种情况都要考虑。。。。。 #include<iostream>#include<cstdio>#include<cstring>#include<cmath>#define inf 10000007using namespace std;int x,y;int n 阅读全文

posted @ 2016-03-11 21:04 ziliuziliu 阅读(143) 评论(0) 推荐(0) 编辑

摘要:强连通分量。 #include<iostream>#include<cstdio>#include<cstring>#include<stack>#define maxv 10050#define maxe 50050using namespace std;struct edge{ int v,nx 阅读全文

posted @ 2016-03-11 19:28 ziliuziliu 阅读(178) 评论(0) 推荐(0) 编辑

摘要:最小割。 网络流不要写错。 #include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<queue>#define maxn 5050#define maxv 20050#define maxe 400050# 阅读全文

posted @ 2016-03-11 18:53 ziliuziliu 阅读(207) 评论(0) 推荐(0) 编辑

摘要:SCOI省选题。 第一种做法是二分图匹配,即属性向装备连边,一旦不能匹配输出即可。 第二种做法是并查集。装备当作边连接两个点,如果某x条边没有环,它最大那个一定找不到属于自己的边。因此一旦某个点所在并查集中无环且最大的点是自己那么就可以输出答案了。 都很短。 #include<iostream>#i 阅读全文

posted @ 2016-03-09 23:41 ziliuziliu 阅读(155) 评论(0) 推荐(0) 编辑

摘要:这TM就过了? 公式m^n-m*(m-1)^(n-1)加一个快速幂 #include<iostream>#include<cstdio>#include<cstring>#define mod 100003using namespace std;long long n,m;long long pow 阅读全文

posted @ 2016-03-08 23:18 ziliuziliu 阅读(103) 评论(0) 推荐(0) 编辑

摘要:从每个点到源点连边表示建水库的花费。每个点之间相互连边,跑MST即可。 #include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define maxv 350#define maxe 150050using nam 阅读全文

posted @ 2016-03-05 16:19 ziliuziliu 阅读(126) 评论(0) 推荐(0) 编辑

摘要:反尼姆游戏。 #include<iostream>#include<cstdio>#include<cstring>using namespace std;int t,n,num[55],ans=0;void work(){ scanf("%d",&n); int cnt=0;ans=0; for 阅读全文

posted @ 2016-03-04 22:09 ziliuziliu 阅读(113) 评论(0) 推荐(0) 编辑

摘要:Nim游戏模板题。 #include<iostream>#include<cstdio>#include<cstring>using namespace std;int n,ans=0;int main(){ while (scanf("%d",&n)==1) { int x; ans=0; for 阅读全文

posted @ 2016-03-04 20:22 ziliuziliu 阅读(119) 评论(0) 推荐(0) 编辑

摘要:思路其实很好想:就是倒着维护并查集。 然而?细节超多。 首先,每个节点可能被攻击多次,只算刚开始攻击的那一次。 第二,考虑清楚并查集的从属关系。 #include<iostream>#include<cstdio>#include<cstring>#define maxe 950050#define 阅读全文

posted @ 2016-03-03 16:09 ziliuziliu 阅读(143) 评论(0) 推荐(0) 编辑

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