摘要:
传送门: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的直... 阅读全文