[acm/icpc2016北京赛区][hihocoder1430] A Boring Problem 推公式
来源:互联网 发布:万能数据恢复破解版 编辑:程序博客网 时间:2024/05/21 06:37
无脑推公式题
一开始推出来
对于每个答案
令
二项式展开:
把所有
#include <iostream>#include <cstdio>#define N 100050#define K 105#define mod 1000000007LLusing namespace std;typedef long long LL;int n,k;LL C[K][K],a[N],ans[N],sum[N],S[N][K],T[N][K],r[N][K];char s[N];void inc(LL &x,LL y) { x = (x+y) % mod; }void solve() { scanf("%d%d",&n,&k); for (int i=0;i<=k;i++) C[i][0] = C[i][i] = 1LL; for (int i=1;i<=k;i++) for (int j=1;j<=i;j++) C[i][j] = ( 0LL + C[i-1][j-1] + C[i-1][j] ) % mod; scanf("%s",s+1); for (int i=1;i<=n;i++) a[i] = s[i] - '0'; for (int i=1;i<=n;i++) sum[i] = (sum[i-1] + a[i]) % mod; // S[i][j] --> sum[i] ^ j for (int i=0;i<=n;i++) S[i][0] = 1LL; for (int i=1;i<=n;i++) for (int j=1;j<=k;j++) S[i][j] = S[i][j-1] * sum[i] % mod; /* // T[i][j] --> (-sum[i]) ^ j for (int i=0;i<=n;i++) T[i][0] = 1LL; for (int i=1;i<=n;i++) for (int j=1;j<=k;j++) { T[i][j] = T[i][j-1] * (-sum[i]) % mod; if (T[i][j] < 0) T[i][j] += mod; } */ // r[i][j] --> sigma(p=1~i) s[p][j] for (int j=0;j<=k;j++) r[0][j] = S[0][j]; for (int i=1;i<=n;i++) for (int j=0;j<=k;j++) r[i][j] = ( r[i-1][j] + S[i][j] ) % mod; for (int i=1;i<=n;i++) { ans[i] = 0LL; for (int p=0;p<=k;p++) if (p%2 == 0) inc( ans[i] , C[k][p] * S[i][k-p] % mod * r[i-1][p] % mod ); else inc( ans[i] , -C[k][p] * S[i][k-p] % mod * r[i-1][p] % mod ); if (ans[i] < 0) ans[i] += mod; } for (int i=1;i<=n;i++) printf("%d%c",(int)ans[i],i==n?'\n':' '); return ;}int main() { int T = 0; scanf("%d",&T); for (int _=1;_<=T;_++) solve(); return 0;}
0 0
- [acm/icpc2016北京赛区][hihocoder1430] A Boring Problem 推公式
- 【hihocoder1430】 A Boring Problem
- [acm/icpc2016北京赛区][hihocoder1424] Asa's Chess Problem 有上下界的费用流
- 2015ACM-ICPC 北京赛区 Problem K. A Math Problem
- 2015ACM-ICPC 北京赛区 Problem A. Xiongnu's Land
- hihocoder 2015ACM-ICPC 北京赛区 Problem A. Xiongnu's Land
- 2015ACM-ICPC 北京赛区 Problem C. Today Is a Rainy Day
- hdu 5793A Boring Question 推公式(多校)
- 2015ACM-ICPC 北京赛区 Problem I. Snake Carpet
- 2015ACM-ICPC 北京赛区 Problem J. Osu! Master
- BUPT 238 2011ACM北京赛区现场赛A题
- ICPC2016沈阳赛区总结
- ACM递归递推练习 Problem A
- hdu5793 A Boring Question(推公式or迷之找规律)
- 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 B.Coin(数学推公式)
- [acm/icpc2016香港赛区][Kattis] Slim Cut 支持撤销的动态规划(?)
- HDU-5112-A Curious Matt (2014ACM/ICPC北京赛区现场赛A题!)
- HDU-5112-A Curious Matt (2014ACM/ICPC北京赛区现场赛A题!)
- eclipse/myeclipse清除workspace
- 最简真分数
- Android(UI)布局(文件)控件标签的通用属性
- Union-Find C语言实现
- Restlet学习资源
- [acm/icpc2016北京赛区][hihocoder1430] A Boring Problem 推公式
- 不回显
- Python Django 中的STATIC_URL 设置和使用解析
- 数据库范式
- JSP的语法与JSP属性——day09
- 49. Group Anagrams**
- WebRTC音频处理流程概述
- 关于sublime默认打开浏览器的问题
- 文件读取的综合案例