07 2015 档案
摘要:传送门:http://acm.hdu.edu.cn/showproblem.php?pid=3949 一个讲的比较好的博客:http://m.blog.csdn.net/blog/wdcjdtc/38300217 Orz hzwer:http://hzwer.com/5491.html 思路...
阅读全文
摘要:传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1923 裸裸的高斯消元,bitset大法好... #include#include#include#includeconst int maxn=1010,maxm=2010;us...
阅读全文
摘要:传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1013 思路:肯定是解方程... 好像有哪里不对,二次项很坑爹。 但是题目里有n+1个点,我们还是可以得出n个一次方程的 设球心坐标为(x1,x2,x3...xn) 那么就有 (a1...
阅读全文
摘要:传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1770 思路:繁体字是什么鬼啊.... 不过总比英语好... 高斯消元解异或方程组。 把每个灯开关次数看成变量,很显然只会是0和1 然后对于每个灯建立方程,即它和与它相邻的灯的开关次...
阅读全文
摘要:一些还没写的题(好像除了前两题都比较神...) bzoj1009:这是AC自动机?这不是KMP+矩乘优化DP吗?不过好像AC自动机也可以做(死) bzoj3940:这好像是正版的AC自动机,3942好像是弱化版 bzoj1444:并不知道在干什么,不过这题是AC自动机上的DP bzoj1195:...
阅读全文
摘要:传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2553 思路:第一件事当然是建立AC自动机。。。 现在我们建好了AC自动机,那么我们就在AC自动机上走,走到一个终止节点就算我们找到一个禁忌串,然后返回根节点重新匹配。 和bzoj1...
阅读全文
摘要:传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1030 思路:直接算好像比较困难,所以考虑先算不可读的串的个数,再拿总串数去减。 不可读的串的数量就是在AC自动机上走M步而不经过结尾节点(包括结尾点和fail指向结尾点的节点)的路...
阅读全文
摘要:传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1212 思路:这题AC自动机都不用建,只要trie就好了。。。 首先令f[i]表示到i的前缀能否被理解,那么答案就是f[i]==1时最大的i 转移也很简单,如果f[i]==1,这个...
阅读全文
摘要:传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2434 一个讲得很详细的题解:http://blog.csdn.net/huzecong/article/details/7769988 思路:这题的想法有点神啊.... 先构建AC...
阅读全文
摘要:传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3172 思路:每加入一个串,就给这个串的路径上所有点的sum+1,表示它的前缀都又出现了一次,然后从下向上把sum加到fail指针指向的点上就可以得到答案了。 #include#in...
阅读全文
摘要:传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=4179 思路:这题和上一题不是差不多吗....就是在没有环的时候找一个最长路,长度超过L就能完成任务。 #include#include#includeconst int maxn=...
阅读全文
摘要:传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2938 思路:构建AC自动机,无限长的安全代码就是能一直在AC自动机上匹配而匹配不上任何一个危险串。依旧是匹配指针不能走到危险串的结尾点x,fail指针指向x的y也不能走,因为根据f...
阅读全文
摘要:传送门:http://http://acm.hdu.edu.cn/showproblem.php?pid=2222 思路:AC自动机入门题,直接上AC自动机即可。 对于构建AC自动机,我们要做的只有三件事: 1)构建字典树 2)构建失败指针 3)构建trie图(这道题好像不做这一步也能A。。...
阅读全文
摘要:传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=4196 思路:裸裸的树链剖分。设已安装的为1,未安装的为0。 对于安装操作,就是询问x到0的路径上0的个数,然后把这个路径赋为1 对于卸载操作,就是询问x的子树中1的个数,然后把子树...
阅读全文
摘要:传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3992 思路:M是一个质数,问题又是求乘积,于是我们就可以想到利用M的原根g把问题变成求和(我怎么想不到啊。。。) 根据原根的性质,我们可以把1到M-1中的数i表示为(g^b[i])...
阅读全文
摘要:传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=4178 比较裸的NTT NTT讲的比较好的博客 http://blog.csdn.net/acdreamers/article/details/39026505 #include#i...
阅读全文
摘要:传送门:http://www.spoj.com/problems/TSUM/ 思路:先不管i#include#include#include#define ll long longconst int maxn=1>1,op),fft(bg+step,step>1,op); plex w=(pl...
阅读全文
摘要:传送门:http://acm.hdu.edu.cn/contests/contest_showproblem.php?cid=589&pid=1007 思路:预处理出最短路,跑最小割 lll的代码: #include#define maxn 2100#define maxm 180000#def...
阅读全文
摘要:传送门:http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1002&cid=589 思路:对于每个人,向右二分判断能组成group最远的人,用ST表维护最大最小值,判断时只要看最大最小只差是否小于k即可 CYY的代码 #incl...
阅读全文
摘要:传送门:http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1001&cid=589 思路:超级大暴力:枚举l,r,暴力判断每个数,复杂度O(n^4)爆炸了 那么枚举l,r肯定不行了。 换个思路,判断每个数对多少个区间产生了贡献 ...
阅读全文
摘要:题面传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3160 思路:首先题目中不要连续的回文串,那么答案就是总的回文串-连续回文串 连续回文串用manacher就可以O(n)搞出来 现在的问题是求总的回文串。 既然是回文串,我们就想到...
阅读全文
摘要:一句话:给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi,求Ei. 思路:先把q[i]约了,然后就是: Ei=∑jiqj(j−i)2 先看左边: 令f[i]=q[i],g[i]=1/i/i 左边就是sigma f[j]*g[i-j] 然后下标和就为定值了,就是卷积...
阅读全文
摘要:题目又是一句话:请计算C[k]=sigma(a[i]*b[i-k]) 。 其中 k #include#include#include#includeconst double pi=M_PI;const int maxn=270010;using namespace std;struct plex...
阅读全文
摘要:一句话题意:给出两个n位10进制整数x和y,你需要计算x*y。n#include#include#include#define ll long longconst int maxn=200010;const double pi=M_PI;using namespace std;struct pl...
阅读全文
摘要:思路:令K[i]=k[1]+k[2]+...+k[i],B[i]=b[1]+b[2]+..+b[i] 先取出每行第一个数,那么第i行第j列的元素就是A[i]+i*K[j]+B[j] 那么每行的答案ans[i]=min(i*K[j]+B[j])+A[i] 稍微变形:B[j]=i*(-K[j])+a...
阅读全文
摘要:题面: Mike有一个农场,这个农场n个牲畜围栏,现在他想在每个牲畜围栏中养一只动物,每只动物可以是牛或羊,并且每个牲畜围栏中的饲养条件都不同,其中第i个牲畜围栏中的动物长大后,每只牛可以卖a[i]元,每只羊可以卖b[i]元,为了防止牛羊之间相互影响,Mike找到了m条规律,每条规律给出一个三元...
阅读全文
摘要:思路:先用splay处理出弹珠序列,然后就是斜率优化了 首先有f[i]=-a[i]*p[j]+q[j] 稍微变形得q[j]=a[i]*p[j]+f[i] 用单调栈维护上凸壳,询问时二分,然后就没有然后了。 #include#include#include#include#define ...
阅读全文
摘要:思路:题面真心长....单调栈维护上凸壳即可 设sum[i]为前i道工序的复杂度之和,g[i]为第i个快乐最早开始生产的时间。因为我们要保证没有两个快乐同时出现在同一道工序,所以 g[i]=g[i-1]+max(sum[j]*f[i-1]-sum[j-1]*f[i]) 然后就是像斜率优化的过...
阅读全文
摘要:Description 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi。我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得这些软件的价值尽可能大(即Vi的和最大)。 但是现在有个问题:软件之间存在依赖关系,即软件i只有在安装了软件j(包括软件j的直...
阅读全文
摘要:思路:树形DP。先求最大值。 令s[x]为x的子树中叶子节点的数量。 f[x]为到x时 为先手走,先手能取到的值在子树中排第f[x]小。 g[x]为到x时 为后手走,后手能取到的值在子树中排第f[x]小。 对f[x],先手应该往哪个子树走呢?对于x的一棵子树y,如果进入,那么最终答案就是这棵...
阅读全文
摘要:Description 给定一个长度为n的正整数数列a[i]。 定义2个位置的graze值为两者位置差与数值差的和,即graze(x,y)=|x-y|+|a[x]-a[y]|。 2种操作(k都是正整数): 1.Modify x k:将第x个数的值修改为k。 2.Query x k:询...
阅读全文