关闭
当前搜索:

BZOJ3011: [Usaco2012 Dec]Running Away From the Barn 可并堆

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3011 以1号点为根建树,每个点维护一个大根堆,堆里的元素的权值等于到当前点的距离,然后只要堆顶的值大于L,就弹顶。 当向父亲合并的时候需要给堆里的元素整个加上一个值,于是写个推标记的pushdown就可以了 #include #include #include #include #i...
阅读(422) 评论(0)

BZOJ2229: [Zjoi2011]最小割 分治最小割

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2229 至于什么是分治最小割就懒得在这里写了,网上的讲解应该很多,总之做n次最大流就可以得出n个点两两之间的最小割了,计算答案即可 #include #include #include #include #include #include using namespace std; #d...
阅读(300) 评论(0)

BZOJ1212: [HNOI2004]L语言 AC自动机

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1212 把给定的单词建成一个AC自动机,然后把给的文章在上面跑即可。 f[i]表示能不能匹配到第i个字符,当第i个字符在AC自动机上走到了x节点,如果x是一个danger节点那么就一直跳x的fail指针,如果路径上有danger节点,f[i]|=f[i-w[x]] (其中w[x]表示:如...
阅读(313) 评论(0)

BZOJ2067: [Poi2004]SZN 树形DP

题目大意:http://www.lydsy.com/JudgeOnline/problem.php?id=2067 这个题一共两问,先求第一问:也就是问这个图最少需要几笔画出来, ans1=(奇点个数+1)/2 然后第二问就是一个树形DP,f[i]表示以i的子树下面最少需要补一个多长的链,如何转移f[i]呢? 先二分答案,设答案为Lim 把所有f[son[i]]扔到一个set里,然后在se...
阅读(314) 评论(0)

BZOJ3091: 城市旅行 LCT

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3091 建议可以先做一下线段树版:2752高速公路 一看有删边加边,就是LCT的题了,然后推一推数学式子。 #include #include #include #include #include using namespace std; #define LL long long co...
阅读(554) 评论(0)

BZOJ2286: [Sdoi2011]消耗战 虚树

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2286 题解:看数据范围以及结合题目要求显然可以用虚树,然后建出来虚树在上面DP就好了 建虚树时以1为根,然后f[i]表示将以i为节点的子树(包括其自己)断开的费用,如果f[i]为有资源的点f[i]=min(w[1到i的路径]),如果i没有资源,就将f[i]再和sum[f[son[i]]...
阅读(217) 评论(0)

BZOJ1055: [HAOI2008]玩具取名 区间DP

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1055 f[i][j][k]表示区间i,j能否合成出来字符k,其中k=1,2,3,4分别代表字母W,I,N,G,然后写一个自带64倍常数的区间DP就可以了#include #include #include #include #include using namespace std; co...
阅读(307) 评论(0)

BZOJ 2653: middle 主席树+二分

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2653 对于每一个询问,我们可以用二分答案来判断当前值可不可行。 先不考虑多组询问,可以把每一个大于等于二分值的数字设成1,小于二分值的数字设成-1,然后求出[b+1,c-1]的区间和以及[a,b]的右端最大连续和以及[c,d]的左端最大连续和,这几个操作可以用传递结构体的线段树来判定,...
阅读(525) 评论(0)

BZOJ2599: [IOI2011]Race 点分治

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2599 题解:点分治的时候记录两个值,一个是距离,一个是边数,因为最小值是无法删除的,所以可以开一个数组记录每一个答案出现了多少次,最后从小到大扫数组就OK #include #include #include #include #include using namespace std;...
阅读(716) 评论(1)

BZOJ3365: [Usaco2004 Feb]Distance Statistics 路程统计 点分治

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3365 题解:点分治的题 (对于点分治初学者,简单概括一下点分治):点分治通过递归的方式不断找到子树的重心,然后以当前的子树的重心为根,统计该子树内所有点到根(重心)的距离并存放到一个数组里,然后在距离数组里做一些事情。点分治的时间复杂度为nlogn*(对距离数组做的事情的时间复...
阅读(538) 评论(0)

BZOJ1493: [NOI2007]项链工厂 Splay

1493: [NOI2007]项链工厂 Time Limit: 30 Sec  Memory Limit: 64 MB Submit: 1434  Solved: 622 [Submit][Status][Discuss] 题解: 一个环上有各种颜色珠子,支持6种操作: 1.区间平移(把原题的意思转化一下就成了区间平移) 2.区间翻转 3.交换两个珠子的位置 4.区间染色...
阅读(261) 评论(0)

BZOJ1500: [NOI2005]维修数列 Splay

1500: [NOI2005]维修数列 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 12862  Solved: 4104 [Submit][Status][Discuss] 题解: Splay的巅峰之作,支持插入一堆数,删除一堆数,区间反转,区间权值覆盖,求和,求最大子序列 对于插入和删除: 因为内存只能开到500000,...
阅读(230) 评论(0)

BZOJ1895: Pku3580 supermemo Splay

BZOJ1895: Pku3580 supermemo Time Limit: 15 Sec  Memory Limit: 64 MB Submit: 291  Solved: 119 [Submit][Status][Discuss] 题解: Splay裸题 关于REVOLVE操作,不难想其实是一个区间平移操作 区间平移操作我是这样写的: 先把T模一下区间长度,防止它转回...
阅读(305) 评论(0)

BZOJ2251: [2010Beijing Wc]外星联络 后缀数组

2251: [2010Beijing Wc]外星联络 Time Limit: 30 Sec  Memory Limit: 256 MB Submit: 791  Solved: 475 [Submit][Status][Discuss] 题解: 后缀数组的题,因为要求输出按字典序排序,而后缀数组中的height数组是满足这个条件的,我们只需要利用height数组来找出所有的LCP...
阅读(306) 评论(0)

BZOJ1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 后缀数组

1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1064  Solved: 580 [Submit][Status][Discuss] 题解: 后缀数组求出来Height数组,然后求出相邻的K个串的LCP即可,不需要让串的长度大于K,因为等于K一定比大于...
阅读(349) 评论(0)

后缀数组模板

#include #include #include #include const int N=200010; using namespace std; int n,k; int m,p,wa[N],wb[N],SA[N],RK[N],HE[N],c[N],cnt; char s[N]; void GetSA() { int *x=wa,*y=wb; m=255,p=0; for (int...
阅读(262) 评论(0)

BZOJ1299: [LLH邀请赛]巧克力棒 SG函数 博弈论

1299: [LLH邀请赛]巧克力棒 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 454  Solved: 258 [Submit][Status][Discuss] 题解: 这个题可以转化成nim游戏,首先我们考虑可不可以从巧克力棒中选出最大的一个异或和为0的集合,如果能,那么剩下的所有巧克力棒一定不会出现异或和为0的集合(...
阅读(324) 评论(0)

BZOJ1066: [SCOI2007]蜥蜴 网络流

1066: [SCOI2007]蜥蜴 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 3554  Solved: 1777 [Submit][Status][Discuss] 题解: 想法: 一道不错的网络流,我们可以把一只蜥蜴从起始位置到离开边界的一条路径想象成单位1的流量。 对于一个流量,它会导致整条路径上的边的容量都-1,...
阅读(135) 评论(0)

BZOJ2879: [Noi2012]美食节

2879: [Noi2012]美食节 Time Limit: 10 Sec  Memory Limit: 512 MB Submit: 1826  Solved: 966 [Submit][Status][Discuss] 题解: 和修车基本上是一样的,但是因为边比较多,我们需要动态建边,当我们发现一个点的倒数第i到菜已经做了,那么我们再将他要做的下一道菜加上就可以 #incl...
阅读(405) 评论(0)

BZOJ1070: [SCOI2007]修车

1070: [SCOI2007]修车 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 5029  Solved: 2069 [Submit][Status][Discuss] 题解: 先将原图拆成一个二分图: 左边一共n*m个点,第(i-1)*n+j个点表示第i个工人修他的倒数第j个车 右边一共n个点,第i个点表示第i辆车 可...
阅读(263) 评论(0)
113条 共6页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:36780次
    • 积分:1464
    • 等级:
    • 排名:千里之外
    • 原创:113篇
    • 转载:0篇
    • 译文:0篇
    • 评论:17条