12 2015 档案

CF 610E. Alphabet Permutations
摘要:题目:http://codeforces.com/problemset/problem/610/E如果存在c1,c2在原串相邻且在询问串中c1在c2前面的话,把它们在原串出现次数加起来记作sum,那么n-sum就是答案。维护一棵线段树,线段树的每个节点存一个k^2的矩阵。然后修改的话就在线段树上区间... 阅读全文

posted @ 2015-12-29 18:50 ctlchild 阅读(307) 评论(0) 推荐(0)

BZOJ 1227: [SDOI2009]虔诚的墓主人
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1227离散化+树状数组+扫描线。如果一个点周围没有树的话,那就没有什么用了。对给的点排序,把x轴离散化掉。首先我们要做出每一棵树的l,r,u,d(四个方向上的点的个数)然后我们把x轴扔进树状数组维... 阅读全文

posted @ 2015-12-28 22:11 ctlchild 阅读(190) 评论(0) 推荐(0)

BZOJ1009: [HNOI2008]GT考试
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1009f[i][j]表示当前扫到了第i位,已经匹配了j个。(感觉很多这样匹配的问题都是这么玩的,因为不出现某段xx就是它一直在匹配,但从未成功过。然后,我们插一位数进去变成f[i+1][],对于插... 阅读全文

posted @ 2015-12-23 21:31 ctlchild 阅读(156) 评论(0) 推荐(0)

BZOJ3674: 可持久化并查集加强版
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3674用可持久化线段树维护可持久化数组,加上启发式合并,就成了可持久化并查集。。用root数组来记录当前是第x次操作之后的情景,这样我们就可以返回某次操作之后了。注意一直都是维护点的pos,画个图... 阅读全文

posted @ 2015-12-23 14:37 ctlchild 阅读(207) 评论(0) 推荐(0)

BZOJ3261: 最大异或和
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3261a[i]^...^a[j]=(a[1]^...^a[j])^(a[1]^...^a[i-1]) 。然后建立可持久化trie搞就可以了。#include#include#include#inc... 阅读全文

posted @ 2015-12-22 21:37 ctlchild 阅读(195) 评论(0) 推荐(0)

BZOJ2741: 【FOTILE模拟赛】L
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2741分块+可持久化trief[i][j]表示第i块到第j个数的最大答案。可以通过n^1.5时间内维护出来。然后对于询问就前面那一段暴力找和块的答案相比较就好了。然后似乎一定要插一个0 。。。#i... 阅读全文

posted @ 2015-12-22 21:35 ctlchild 阅读(182) 评论(0) 推荐(0)

BZOJ3166: [Heoi2013]Alo
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3166按权值从大到小排序然后倒序插入set,set维护每个点的位置,然后区间就是前驱的前驱+1到后继的后继-1 。然后维护一个可持久化trie就可以了。#include#include#inclu... 阅读全文

posted @ 2015-12-22 19:16 ctlchild 阅读(156) 评论(0) 推荐(0)

BZOJ2653: middle
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2653二分答案。对离散化后的每一个数都建立一棵区间线段树(然后可持久化掉),对于大于等于它的数设为1,否则设为-1 。然后对于询问只要找(a,b)之间的右起最大和+(c,d)之间的左起最大和+(b... 阅读全文

posted @ 2015-12-22 12:50 ctlchild 阅读(188) 评论(0) 推荐(0)

BZOJ3524: [Poi2014]Couriers
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3524可持久化线段树。连离散化都不用。找一个出现次数最大的数那就比较是左儿子大还是右儿子大找下去就可以了。#include#include#include#include#define rep(i... 阅读全文

posted @ 2015-12-21 20:15 ctlchild 阅读(2010) 评论(0) 推荐(0)

BZOJ3207: 花神的嘲讽计划Ⅰ
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3207可持久化线段树。把每段数字都hash起来,然后把询问的数字段也hash起来。然后询问的时候做减法就可以了。#include#include#include#include#define re... 阅读全文

posted @ 2015-12-21 19:56 ctlchild 阅读(177) 评论(0) 推荐(0)

BZOJ2588: Spoj 10628. Count on a tree
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2588lca+可持久化线段树在树上建一棵可持久化线段树就可以了。#include#include#include#include#define rep(i,l,r) for (int i=l;i=... 阅读全文

posted @ 2015-12-21 14:11 ctlchild 阅读(227) 评论(0) 推荐(0)

BZOJ-USACO被虐记
摘要:bzoj上的usaco题目还是很好的(我被虐的很惨。 有必要总结整理一下。 1592: [Usaco2008 Feb]Making the Grade 路面修整 一开始没有想到离散化。然后离散化之后就很好做了。F[I,j]表示第i个点,高度>=j或<=j,f[I,j]=min(f[i-1,j]+ab 阅读全文

posted @ 2015-12-18 14:37 ctlchild 阅读(2250) 评论(0) 推荐(2)

BZOJ2744: [HEOI2012]朋友圈
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2744最大团是一个np问题。。对于本题,做它的逆问题,建反图做最大独立集。对于A最多取出两个点,枚举一下。对于B,B是一个二分图。注意用时间戳加快速度,还有就是注意一下取反的判定(||取反当然是&... 阅读全文

posted @ 2015-12-18 07:53 ctlchild 阅读(482) 评论(0) 推荐(0)

BZOJ1923: [Sdoi2010]外星千足虫
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1923高斯消元。(bitset好优越啊。。#include#include#include#include#include#include#define rep(i,l,r) for (int i... 阅读全文

posted @ 2015-12-17 19:02 ctlchild 阅读(287) 评论(0) 推荐(0)

BZOJ1922: [Sdoi2010]大陆争霸
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1922带限制最短路。每个点真正的dis是max(dis[i],dis[v]),v是其保护点。可以把题目中的保护转化为每个点的贡献。每次扫一边连出的边做最短路把rd为0的点加入队列。再扫一遍自己的贡... 阅读全文

posted @ 2015-12-17 18:20 ctlchild 阅读(185) 评论(0) 推荐(0)

BZOJ3237: [Ahoi2013]连通图
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3237cdq分治+缩点。可以每次处理的时候把除l~r之外的边的端点都连起来。然后去跑cdq分治。当l==r的时候让那些修改边不连然后跑一边并查集。#include#include#include#... 阅读全文

posted @ 2015-12-17 13:48 ctlchild 阅读(207) 评论(0) 推荐(0)

BZOJ2001: [Hnoi2010]City 城市建设
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2001cdq分治+重建图。可以保留当前一定会被选的非修改边然后把点缩起来。这样的话每次点数至多只有r-l+1个,边数只有2*(r-l+1)-1个(生成树+修改边)。时间复杂度O(nlog^2(n)... 阅读全文

posted @ 2015-12-16 21:36 ctlchild 阅读(526) 评论(0) 推荐(0)

BZOJ2115: [Wc2011] Xor
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2115一条路径就是一条1到n的路径加上一坨环。因为是xor运算就二进制拆位,维护61个向量的线性基就可以了。#include#include#include#include#include#inc... 阅读全文

posted @ 2015-12-16 13:08 ctlchild 阅读(175) 评论(0) 推荐(0)

BZOJ3139: [Hnoi2013]比赛
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3139记忆化搜索。用map来存当前点的状态。然后搜索顺序要从大到小搜。#include#include#include#include#include#include#include#define... 阅读全文

posted @ 2015-12-15 21:53 ctlchild 阅读(130) 评论(0) 推荐(0)

BZOJ1135: [POI2009]Lyz
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1135线段树+hall定理。。设当前穿i号鞋子的人数是a[i],那么我们要保证∑a[i]≤(r-l+1+d)*k,让a[i]-=k,就变成了∑a[i]≤d*k然后要让任何一段区间都满足这个条件,那... 阅读全文

posted @ 2015-12-15 20:16 ctlchild 阅读(186) 评论(0) 推荐(0)

BZOJ2086: [Poi2010]Blocks
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2086如果一段前缀和>=k*len那么就是可行的。于是对所有的a[i]-=k,求前缀和。然后从1~n维护一个单调递减的栈。从n~1扫一遍,如果sum[i]-sum[q[top-1]]>=0,那么以... 阅读全文

posted @ 2015-12-15 20:11 ctlchild 阅读(200) 评论(0) 推荐(0)

BZOJ3262: 陌上花开
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3262三维。排序搞掉一维。让题目变成两维,然后用树状数组+cdq分治。每次把平分的两个数组进行排序,然后扫一遍,由于排过序所以如果对于(l,mid)里的i对(mid+1,r)里的j有贡献的话,那它... 阅读全文

posted @ 2015-12-14 21:34 ctlchild 阅读(600) 评论(0) 推荐(0)

BZOJ1176: [Balkan2007]Mokia
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1176cdq分治。。有两维。可以排序搞掉一维然后树状数组处理一维。用cdq分治对时间分治。对于询问(l,r),(l,mid)一定会对(mid+1,r)有贡献,每次扫一遍把贡献加上去,然后再删掉,把... 阅读全文

posted @ 2015-12-14 20:02 ctlchild 阅读(357) 评论(0) 推荐(0)

BZOJ1261: [SCOI2006]zh_tree
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1261区间dp,f[l][r]=min(f[l][now-1]+f[now+1][r]+c*f[i]),然后最后再加上k*(sum[r]-sum[l-1])/sum[n]#include#incl... 阅读全文

posted @ 2015-12-11 21:52 ctlchild 阅读(504) 评论(0) 推荐(0)

BZOJ2004: [Hnoi2010]Bus 公交线路
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2004状压dp+矩阵乘法。f[i][s]表示从第i位至前面的i-k位,第i位必须取的状态。然后p->p‘的转移是每一次只走一步的,强制其跑得最远的一位转移。那么判断能否转移就是v[i]#inclu... 阅读全文

posted @ 2015-12-11 20:14 ctlchild 阅读(165) 评论(0) 推荐(0)

BZOJ1066: [SCOI2007]蜥蜴
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1066化点权为边权。s->L,c=1;每个有权值的点拆成两个点,相连边权为a[i][j],然后距离#include#include#include#include#include#define r... 阅读全文

posted @ 2015-12-11 12:29 ctlchild 阅读(152) 评论(0) 推荐(0)

BZOJ1294: [SCOI2009]围豆豆Bean
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1294状压dp,dis[s][i][j]表示从(i,j)出发围的状态是s的最短路。然后判断一个点是否在区间内用射线法(向右射出一条射线,如果穿过的边界是奇数就算,偶数则不算。然后枚举起点跑最短路就... 阅读全文

posted @ 2015-12-10 21:06 ctlchild 阅读(290) 评论(0) 推荐(0)

BZOJ2756: [SCOI2012]奇怪的游戏
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2756对棋盘进行黑白染色。若答案为x,有c1*x-s1==c2*x-s2得x=(s1-s2)/(c1-c2),那么若c1!=c2,检测x就可以了。若不是就二分x。建图:s->黑点 c=x-a[i]... 阅读全文

posted @ 2015-12-09 21:57 ctlchild 阅读(219) 评论(0) 推荐(0)

BZOJ1857: [Scoi2010]传送带
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1857三分套三分。#include#include#include#include#include#include#include#define rep(i,l,r) for (int i=l;i... 阅读全文

posted @ 2015-12-09 20:02 ctlchild 阅读(149) 评论(0) 推荐(0)

BZOJ1237: [SCOI2008]配对
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1237可以贪。如果没有那个限制两个数组都从小到大扫一遍一一配对就可以了。有那个限制的话可以发现只会有相邻2个或3个可以调整。4个的可以化成1 3或2 2。。#include#include#inc... 阅读全文

posted @ 2015-12-09 19:18 ctlchild 阅读(213) 评论(0) 推荐(0)

BZOJ1082: [SCOI2005]栅栏
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1082二分+dfs判定。显然我们取的肯定是前ans块木板。然后砍的木材也应该是从小到大砍(如果小的木材可以满足条件我一定不会去动大的木材嘛。所以两遍排序。二分答案。然后对于要取的每块木板,我们搜索... 阅读全文

posted @ 2015-12-09 19:07 ctlchild 阅读(568) 评论(0) 推荐(0)

BZOJ2330: [SCOI2011]糖果
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2330差分约束。在最短路中有d[v]d[v]-d[u]x-y=k的标准形式,然后建立一条从y到x的k边,求出最长路径即可2.如果权值为正,用dj,spfa,bellman都可以,如果为负不能用dj... 阅读全文

posted @ 2015-12-08 21:44 ctlchild 阅读(177) 评论(0) 推荐(0)

BZOJ1295: [SCOI2009]最长距离
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1295转成最短路。#include#include#include#include#include#include#include#define rep(i,l,r) for (int i=l;i... 阅读全文

posted @ 2015-12-08 21:30 ctlchild 阅读(157) 评论(0) 推荐(0)

BZOJ1263: [SCOI2006]整数划分
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1263一眼就可以看出按3拆再乘上最后一个数。。一开始写的太过sb。。天灾人祸不可避。#include#include#include#include#include#define rep(i,l,... 阅读全文

posted @ 2015-12-08 20:05 ctlchild 阅读(175) 评论(0) 推荐(0)

BZOJ1853: [Scoi2010]幸运数字
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1853并不是数位dp。容斥原理。做出所有的幸运数字,然后再跑一下它的倍数,由于会有重复。所以容斥一下。。注意两个10^10相乘会爆long long#include#include#include... 阅读全文

posted @ 2015-12-08 19:29 ctlchild 阅读(184) 评论(0) 推荐(0)

BZOJ3573: [Hnoi2014]米特运输
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3573如果一个点的权值确定了,那么这棵树就确定了,我们对每一个点统计根节点是它的多少倍(太大于是开了log),然后找下众数就可以了。 #include#include#include#includ... 阅读全文

posted @ 2015-12-08 19:26 ctlchild 阅读(143) 评论(0) 推荐(0)

模版整理(数据结构)【待更新】
摘要:treap(bzoj3224)#include#include#include#include#include#define rep(i,l,r) for (int i=l;i=r;i--)#define clr(x,y) memset(x,y,sizeof(x))#define maxn 2005... 阅读全文

posted @ 2015-12-07 21:38 ctlchild 阅读(272) 评论(0) 推荐(0)

UOJ#152. 【UR #10】汉诺塔
摘要:题目:http://uoj.ac/problem/152orzKPM。。。分治,把数字是l~mid的拿出来放在一根柱子上,mid+1~r放在另一根柱子上。如此递归下去,每次递归只是改一下方向,l,r。然后只要处理r-l#include #include #include #include #incl... 阅读全文

posted @ 2015-12-06 15:23 ctlchild 阅读(239) 评论(0) 推荐(0)

BC#65 T5 ZYB's Prime
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=5594完全不会啊TAT。。其实官方题解已经说的很清楚了。。#include #include #include #include #include #include #include #define rep(... 阅读全文

posted @ 2015-12-06 10:45 ctlchild 阅读(155) 评论(0) 推荐(0)

BZOJ3140: [Hnoi2013]消毒
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3140如果这是一个二维的图,那么二分图最小覆盖就可以了。然后题目是一个三维的,所以2^h枚举砍掉的层数,然后对于没有砍掉的层,全部压到一张图上跑二分图最小覆盖就可以了。注意令z轴最短,这样它最多也... 阅读全文

posted @ 2015-12-05 22:51 ctlchild 阅读(325) 评论(0) 推荐(0)

BZOJ2338: [HNOI2011]数矩形
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2338中学数学老师告诉我们,一个矩形的两条对角线相等,所以只要把所有的边拿出来,记录下中点坐标及长度,然后排一遍序扫一遍更新答案。。(听说开double会炸?#include#include#in... 阅读全文

posted @ 2015-12-05 22:42 ctlchild 阅读(160) 评论(0) 推荐(0)

BC#65T4 ZYB's Tree
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=5593点分治被卡了TAT。。。 正解是dp,可以按层数考虑dp,先预处理跑一边dfs得到子树各层数点数大小,再dfs一遍找出不在子树上的与当前点距离=2) g[v][i]+=f[u][i-1]-f[v][i-... 阅读全文

posted @ 2015-12-05 22:24 ctlchild 阅读(165) 评论(0) 推荐(0)

BZOJ3144: [Hnoi2013]切糕
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3144把每一条z轴都拿出来,s->(x,y,1),c=f[x][y][1];(x,y,k)->(x,y,k+1),c=f[x][y][k];(x,y,r)->t,c=inf然后对于四联通的点,(x... 阅读全文

posted @ 2015-12-04 18:10 ctlchild 阅读(144) 评论(0) 推荐(0)

bzoj2337: [HNOI2011]XOR和路径
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2337因为是xor,我们按位处理,可以得到如果权值(w&(10的情况,令a[n][n]=1,有重边就不要作死开邻接矩阵。 #include#include#include#include#incl... 阅读全文

posted @ 2015-12-04 07:52 ctlchild 阅读(280) 评论(0) 推荐(0)

BZOJ1211: [HNOI2004]树的计数
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1211依然是prufer编码,然后注意一下坑点。#include#include#include#include#define rep(i,l,r) for (int i=l;i=r;i--)#d... 阅读全文

posted @ 2015-12-03 20:35 ctlchild 阅读(157) 评论(0) 推荐(0)

BZOJ1005: [HNOI2008]明明的烦恼
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1005树的prufer编码是唯一的,然后推一发公式。(敲少一个字符调半天。。。#include#include#include#include#define rep(i,l,r) for (int... 阅读全文

posted @ 2015-12-03 19:58 ctlchild 阅读(159) 评论(0) 推荐(0)

BZOJ2750: [HAOI2012]Road
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2750跑n遍spfa,然后对于一条边,我们记录有多少最短路可以走到出点,记为a,从入点出发有多少最短路,记为b,那么每次就加上a[u]*b[v]就可以了。(数据范围开错傻逼好久。。。药丸#incl... 阅读全文

posted @ 2015-12-02 14:27 ctlchild 阅读(238) 评论(0) 推荐(0)

BZOJ2425: [HAOI2010]计数
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2425其实能够构成的数就是原数的排列(算前导0),然后组合计数一下就可以了。#include#include#include#include#define rep(i,l,r) for (int ... 阅读全文

posted @ 2015-12-01 21:31 ctlchild 阅读(348) 评论(0) 推荐(0)

BZOJ2301: [HAOI2011]Problem b
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2301莫比乌斯函数,记录前缀和分块,然后容斥。#include#include#include#include#define rep(i,l,r) for (int i=l;i=r;i--)#de... 阅读全文

posted @ 2015-12-01 20:34 ctlchild 阅读(151) 评论(0) 推荐(0)

BZOJ2300: [HAOI2011]防线修建
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2300(我只是在发以前写过的题。。因为题目没说强制在线,所以离线乱搞就可以了。先把点删掉然后一个一个插进去,维护一个动态凸包就可以了。#include#include#include#includ... 阅读全文

posted @ 2015-12-01 19:43 ctlchild 阅读(155) 评论(0) 推荐(0)

BZOJ2302: [HAOI2011]Problem c
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2302组合数学+dp(其实我完全不会。。。首先题目转化成#include#include#include#include#include#define rep(i,l,r) for (int i=... 阅读全文

posted @ 2015-12-01 19:22 ctlchild 阅读(193) 评论(0) 推荐(0)

BZOJ2342: [Shoi2011]双倍回文
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2342回文树然后我们把fail树建出来,然后对于0和1进行dfs就可以了。#include#include#include#include#include#include#define rep(i... 阅读全文

posted @ 2015-12-01 14:27 ctlchild 阅读(180) 评论(0) 推荐(0)

导航