YY
LIN452
(*╹▽╹*)
展开
-
BZOJ2798/POI2012 Squarks
Task 设有n个互不相同的正整数{X1,X2,…Xn},任取两个Xi,Xj(i≠j),能算出Xi+Xj。现在所有取法共n*(n-1)/2个和,要你求出X1,X2,…Xn。 3<=n<=300, 每个正整数不超过10^8Solution 假设原序列是单调递增的,f(i,j)=xi+xjf(i,j)=x_i+x_j. 对于所有a<ia<i并且b<jb<j,都有f(i,j原创 2016-10-09 20:51:54 · 499 阅读 · 0 评论 -
BZOJ2799/POI2012 Salaries
Task 给出一棵n个结点的有根树,结点用正整数1~n编号。 每个结点有一个1~n的正整数权值,不同结点的权值不相同, 并且一个结点的权值一定比它父结点的权值大(根结点的权值最大,一定是n)。现在有些结点的权值是已知的,并且如果一个结点的权值已知,它父结点的权值也一定已知。 问还有哪些结点的权值能够唯一确定。 n<=1,000,000, 1<=pi<=n, 0<=zi<=n.Sol原创 2016-10-09 21:29:30 · 607 阅读 · 0 评论 -
BZOJ1526/POI 2005 Bankomat
所有可能的输入方案一共有10000种,我们可以对每一个进行检验.对每个录像求出对应的f[i][k]表示第i个字符以后第一个字符k的位置,预处理出f数组之后就可以对每个数字进行O(1)检验了. 由于无法同时求出每个串的f数组,因此可以对每个串检验10000种可能,已经不可能的数字之后就不必检验了.#include<cstdio> #include<cstring> using namespa原创 2016-10-27 07:00:37 · 582 阅读 · 0 评论 -
BZOJ1534/POI2005 Fibonacci sums
首先把两个序列相加得到初始序列.之后就对初始序列进行调整: 对于f[i]>=2的情况可以根据2*f[i]=f[i]+f[i-1]+f[i-2]=f[i+1]+f[i-2]转化为f[i-2]++,f[i+1]++. 对于f[i]=1&&f[i+1]=1,根据f[i+2]=f[i]+f[i-1]转化为给f[i+2]赋值.#include<cstdio> #include<cstring> #incl原创 2016-10-27 07:16:21 · 591 阅读 · 0 评论