【hihocoder1430】 A Boring Problem
来源:互联网 发布:知途旅行网 编辑:程序博客网 时间:2024/06/06 19:30
大意:
给定n个数字序列S,定义
求出所有的 Ans(i) ,答案对10^9+7取模。 S的每个数都在0~9的范围内。
数据范围: N <= 50000, k <= 100.
Solution
呃……暴力拆开然后合并同次项
具体推导可以看我同学的(懒癌晚期)
http://blog.csdn.net/di4covery/article/details/53968919
#include<stdio.h>#include<cstring>#define mod 1000000007#define N 100050#define K 105#define For(i,a,b) for (int i=a;i<=b;i++)int n,k,C[K][K],ans[N],sum[N],S[N][K],T[N][K];char a[N];inline void PlanB(){ scanf("%d%d",&n,&k); For(i,0,k) C[i][0]=C[i][i]=1; For(i,1,k) For(j,1,i) C[i][j]=(C[i-1][j-1]+C[i-1][j]) % mod; scanf("%s",a+1); For(i,1,n) sum[i]=(sum[i-1]+a[i]-'0') % mod; For(i,0,n) S[i][0]=1; For(i,1,n) For(j,1,k) S[i][j]=(long long)S[i][j-1]*sum[i] % mod; For(j,0,k) T[0][j]=S[0][j]; For(i,1,n) For(j,0,k) T[i][j]=(T[i-1][j]+S[i][j]) % mod; memset(ans,0,sizeof(ans)); For(i,1,n) For(j,0,k) ans[i]=(ans[i]+(j&1?-1LL:1LL)*C[k][j]*S[i][k-j]%mod*T[i-1][j]%mod+mod)%mod; For(i,1,n) printf("%d%c",ans[i],i==n?'\n':' ');}int main(){ int t;scanf("%d",&t); while (t--) PlanB();}
0 0
- 【hihocoder1430】 A Boring Problem
- [acm/icpc2016北京赛区][hihocoder1430] A Boring Problem 推公式
- Hihocoder 1430 A Boring Problem (数论)
- hihoCoder 1430 A Boring Problem(数论)
- Hihocoder 1430 Problem I. A Boring Problem (二项式定理
- Boring String Problem
- 中国(北方)大学生程序设计训练赛(第二周)(Problem B: A Boring Game-乱搞)
- hdu5793 A Boring Question
- A Boring Question
- A Boring Game
- A Boring Question HDU
- HDU5793-A Boring Question
- hdu 5008 Boring String Problem
- hdu 5008 Boring String Problem
- HDOJ 5008 Boring String Problem
- 【HDU】5793 A Boring Question
- 【后缀数组】 HDOJ 5008 Boring String Problem
- hdu 5008 Boring String Problem(后缀数组)
- MySql学习(四)
- 如何用GSON解析复杂数组
- 链表
- js数据类型
- 简易加密压缩壳项目
- 【hihocoder1430】 A Boring Problem
- spring aop怎么给Mybaits Mapper接口的代理实现类在进行代理
- 基类Activity的封装+对app所有activity的统一管理
- web前端实现markdown编辑预览页面(低仿csdn博客界面)
- nfs连接目标板与主机
- Eclipse使用心得与技巧
- 什么是云计算?
- Visual Studio 2013 Tools for Unity 安装及使用
- vue父子组件通信问题解决的思路之一