51nod 1172 Partial Sums V2】的更多相关文章

题目 给出一个数组A,经过一次处理,生成一个数组S,数组S中的每个值相当于数组A的累加,比如:A = {1 3 5 6} => S = {1 4 9 15}.如果对生成的数组S再进行一次累加操作,{1 4 9 15} => {1 5 14 29},现在给出数组A,问进行K次操作后的结果.(输出结果 Mod 10^9 + 7) 分析 发现,每次处理相当于将A卷上一个\(I(\forall a_i=1)\) 于是机智的我在wiki又发现狄利克雷卷积满足交换律(我居然才知道) 于是快速幂咯,时间复杂…
卡精度的任意模数fft模板题……这道题随便写个表就能看出规律来(或者说考虑一下实际意义),反正拿到这题之后,很快就会发现他是任意模数fft模板题.然后我就去网上抄了一下板子……我打的是最土的任意模数fft,就是fft7次的那种……(好像有很多方法的样子……)这种任意模数fft方法见http://blog.csdn.net/l_0_forever_lf/article/details/52886397这道题的具体做法见http://blog.csdn.net/qq_33229466/article…
推一下式子发现是裸的FFT,$ans[k]=\sum_{i}\sum_{j}[i+j=k]a[i]*C_{m-1+j}^{j}$ 比较坑爹的就是这个模数,于是我们上任意模数的FFT 任意模数的FFT目的就是降低卷积中的元素上界,我们设$P=\lfloor \sqrt{mod} \rfloor$, 我们将原函数中的系数变成两个$a1[i]=a[i]/P,a2[i]=a[i]%P,b1[i]=b[i]/P,b2[i]=b[i]%P$ 这样我们新卷积出来的值的上限是$n*mod$, $P^2$的系数是…
给出一个数组A,经过一次处理,生成一个数组S,数组S中的每个值相当于数组A的累加,比如:A = {1 3 5 6} => S = {1 4 9 15}.如果对生成的数组S再进行一次累加操作,{1 4 9 15} => {1 5 14 29},现在给出数组A,问进行K次操作后的结果.(每次累加后的结果 mod 10^9 + 7)   Input 第1行,2个数N和K,中间用空格分隔,N表示数组的长度,K表示处理的次数(2 <= n <= 5000, 0 <= k <= 1…
开始想的是O(n2logk)的算法但是显然会tle.看了解题报告然后就打表找起规律来.嘛是组合数嘛.时间复杂度是O(nlogn+n2)的 #include<cstdio> #include<cstring> #include<cctype> #include<algorithm> using namespace std; #define rep(i,s,t) for(int i=s;i<=t;i++) #define dwn(i,s,t) for(in…
Non-negative Partial Sums Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2622    Accepted Submission(s): 860 Problem Description You are given a sequence of n numbers a0,..., an-1. A cyclic shi…
Non-negative Partial Sums Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1420    Accepted Submission(s): 544 Problem Description You are given a sequence of n numbers a0,..., an-1. A cyclic shi…
Description Given a series of n numbers a1, a2, ..., an, the partial sum of the numbers is defined as the sum of ai, ai+1, ..., aj. You are supposed to calculate how many partial sums of a given series of numbers could be divided evenly by a given nu…
考试时候遇到这种题只会找规律 You've got an array a, consisting of n integers. The array elements are indexed from 1 to n. Let's determine a two step operation like that: First we build by the array a an array s of partial sums, consisting of n elements. Element nu…
Partial Sums 题解: 一个数列多次前缀和之后, 对于第i个数来说他的答案就是 ; i <= n; ++i){ ; j <= i; ++j){ b[i] = (b[i] + 1ll * a[j] * C(k-+j-i,j-i)) % mod; } } 唯一注意的就是这个k会到1e9. 观察可能,其实我们最多也就用了n个组合数, 并且这个C(n, m) 的 m 足够小. 所以我们可以根据定义先把这几个组合数先预处理出来. 代码: #include<bits/stdc++.h>…