A Boring Problem UVALive - 7676
16年北京现场赛的题,全场过的队30+。
初看只知道 O(N^2logK)的暴力,以为是什么变换。
仔细发现活用 二项式定理 就行。


#include <bits/stdc++.h>
using namespace std;
#define fst first
#define scd second
#define pb(x) push_back((x))
#define mkp(x,y) make_pair((x),(y))
#define ist(x) insert((x))
typedef long long ll;
typedef pair<int ,int > pii;
typedef pair<ll ,ll > pll;
typedef vector< int > vi;
ll gcd(ll a,ll b){ return b==?a:gcd(b,a%b);}
ll qPow(ll a,ll b,ll mod){ ll ret=1ll;while(b){ if(b&) ret=ret*a%mod;a=a*a%mod;b>>=;} return ret; } const ll mod=1e9+;
const int maxn=5e4+;
ll P[maxn][]; // P[i][k] 代表 前i个数字之和的k次方
ll Pre[maxn][];// Pre[i][k] 代表 前i个P[i][k]的和
ll F[],INV[];
char raw[maxn];
int N,K; void init(){
P[][]=;
for(int i=;i<=N;++i){
P[i][]=;
P[i][]=(P[i-][]+raw[i-]-'')%mod;
for(int j=;j<=K;++j)
P[i][j]=P[i][j-]*P[i][]%mod;
} Pre[][]=;// 0^0 =1
for(int j=;j<=K;++j){
for(int i=;i<=N;++i)
Pre[i][j]=(Pre[i-][j]+P[i][j])%mod;
}
} ll getC(int i,int j){
if(j==) return 1ll;
return F[i]*INV[i-j]%mod*INV[j]%mod;
} int main(){ F[]=1ll;
for(ll i=;i<=;++i)
F[i]=F[i-]*i%mod;
INV[]=qPow(F[],mod-,mod);
for(ll i=;i>=;i--)
INV[i]=(i+)*INV[i+]%mod; int Tests;
scanf("%d",&Tests);
while(Tests--){
scanf("%d%d",&N,&K);
scanf("%s",raw);
init();
ll ans;
for(int i=;i<=N;++i){
ans=0ll;
for(int j=;j<=K;++j){
if(j&)
ans=(ans-getC(K,j)*P[i][K-j]%mod*Pre[i-][j]%mod+mod)%mod;
else
ans=(ans+getC(K,j)*P[i][K-j]%mod*Pre[i-][j]%mod)%mod;
}
printf("%lld%c",ans,i==N?'\n':' ');
}
}
return ;
}
(代码写的常数有点大,应该是mod多了,,,
A Boring Problem UVALive - 7676的更多相关文章
- A Boring Problem UVALive - 7676 (二项式定理+前缀和)
		题目链接: I - A Boring Problem UVALive - 7676 题目大意:就是求给定的式子. 学习的网址:https://blog.csdn.net/weixin_37517391 ... 
- hihoCoder 1430 : A Boring Problem(一琐繁题)
		hihoCoder #1430 : A Boring Problem(一琐繁题) 时间限制:1000ms 单点时限:1000ms 内存限制:256MB Description - 题目描述 As a ... 
- 【XSY1642】Another Boring Problem 树上莫队
		题目大意 给你一棵\(n\)个点的树,每个点有一个颜色\(c_i\),每次给你\(x,y,k\),求从\(x\)到\(y\)的路径上出现次数第\(k\)多的颜色的出现次数 \(n,q\leq 1000 ... 
- Joseph's Problem UVALive - 3521(等差数列的应用)
		题意:给定n, k,求出∑ni=1(k mod i) 思路:由于n和k都很大,直接暴力是行不通的,然后在纸上画了一些情况,就发现其实对于k/i相同的那些项是形成等差数列的,于是就可以把整个序列进行拆分 ... 
- 北京区域赛I题,Uva7676,A Boring Problem,前缀和差分
		转载自https://blog.csdn.net/weixin_37517391/article/details/83821752 题解 其实这题不难,只要想到了前缀和差分就基本OK了. 我们要求的是 ... 
- UVALive - 3713 - Astronauts(图论——2-SAT)
		Problem UVALive - 3713 - Astronauts Time Limit: 3000 mSec Problem Description Input The input cont ... 
- UVALive - 3211 - Now or later(图论——2-SAT)
		Problem UVALive - 3211 - Now or later Time Limit: 9000 mSec Problem Description Input Output Sampl ... 
- UVALive - 4287 - Proving Equivalences(强连通分量)
		Problem UVALive - 4287 - Proving Equivalences Time Limit: 3000 mSec Problem Description Input Outp ... 
- UVALive - 5135 - Mining Your Own Business(双连通分量+思维)
		Problem UVALive - 5135 - Mining Your Own Business Time Limit: 5000 mSec Problem Description John D ... 
随机推荐
- mysql常规巡检
			mysql常规巡检 目录 一.巡检脚本 二.下载巡检脚本 三.脚本执行说明 1.inspection.conf 使用说明 2.inspection_mysql.sh 使用说明 3.mysqltun ... 
- AD域控Dsquery查询命令实列
			注:请以管理员的身份运行cmd程序,要不然某些命令不生效 AD域控Dsquery查询命令实列 查询技术支持二部的所有用户 dsquery user OU=技术支持二部,OU=技术部, ... 
- 【转】sqlserver使用sql导出索引
			转自:http://blog.itpub.net/16436858/viewspace-609341/ BEGIN WITH tx AS ( SELECT a.object_id ,b.name AS ... 
- redis读书笔记
			1.redis两种存储机制(持久化) Redis的存储机制分为:Snapshot和AOF 都先将内存存储在内存中. (1)Snapshot当数据累计到一定的阈值,就会触发dump将数据一次性写入到数据 ... 
- c语言中变量和函数作用域深究
			首先,函数的作用域和访问权限基本可以参考 C语言中的作用域,链接属性和存储类型 也存在例外情况,比如内联函数 static inline,使用static 修饰 inline之后外部文件也可以访问内联 ... 
- Java——String类中的compareTo方法总结
			String类的定义: java.lang 类 String java.lang.Object java.lang.String 所有已实现的接口:Serializable, C ... 
- css修改整个项目的滚动条样式
			在项目中,滚动条不可避免的药出现.设置统一规范的滚动条也是必然.用一个独立的css文件即可修改整个项目中的滚动条样式 . scrollBar.css: /* 滚动条有滑块的轨道部分 */ ::-web ... 
- 正确的学python方式
			首先呢,和其他的各种学习都一样,你一定要明白你学习的目标是什么.有的人想要通过学习Python,转行成程序员,实现行业上的转变:有的人希望通过学习Python,在现有的岗位上提升自己:当然也有很多人只 ... 
- 初识异步、并发处理纯代码及Demo
			多线程Thread 处理 Thread thread = new Thread(()=> { ; i < ; i++) { Console.WriteLine("这是第" ... 
- 【python】django上传文件
			参考:https://blog.csdn.net/zahuopuboss/article/details/54891917 参考:https://blog.csdn.net/zzg_550413470 ... 
