题目链接
解题报告:
这题思维难度较高。
#include<bits/stdc++.h>
#define LL long long
#define pii pair<int,int>
#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;
const int maxn=1e5+5;
const int inf=0x3f3f3f3f;
const LL MOD=1e9+7;
int n,k;
LL p[maxn],f[maxn];
LL qpow(LL x,LL p){
LL ans=1;
while(p){
if(p&1) ans=ans*x%MOD;
x=x*x%MOD;
p>>=1;
}
return ans;
}
int main() {
LL sum;
scanf("%d%d", &n, &k);
for (int i = 1; i <= n; i++) scanf("%lld", &p[i]);
for (int i = 1; i <= n; i++) f[i] = (0LL + k + i - 1) * qpow(i, MOD - 2) % MOD;
for (int i = 1; i <= n; i++) {
sum = p[i];
for (int j = 1; j < i; j++) {
p[j] = p[j] * f[i - j] % MOD;
sum = (sum + p[j]) % MOD;
}
printf("%lld ", sum);
}
return 0;
}