51nod 1161 组合数,规律
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1161
显然,题目可以转化为矩阵求解,但复杂度显然时空都不允许,我们如果自己把这个N*N矩阵的前几项列出来的话就会发现和杨辉三角的某一部分相似,
对照一下发现这个矩阵的第一行对应的就是杨辉三角的某一斜列,依次向下递减,也就是说我们只要知道这几个组合数,就能推导出来这个矩阵。
对于每一个K,对应的矩阵首行元素就是 : C(k-1,0),C(k,1),C(k+1,2).......C(n+k-2,n-1),
mod这么大,N也这么大,lucas显然不能用了,通过观察发现这一行有个规律就是 C(n,r),C(n+1,r+1),C(n+2,r+2)......
我们可以找到每一项之间的递推关系这样也能解决, C(n+1,r+1)=C(n,r)*(n+1)/(r+1) ,第一项永远是一直接递推求解就好了。
#include<bits/stdc++.h>
using namespace std;
#define LL long long
LL mod=1e9+;
void gcd(LL a,LL b,LL &d,LL &x,LL &y)
{
if(!b) {d=a;x=;y=;}
else {gcd(b,a%b,d,y,x);y-=x*(a/b);}
}
LL Inv(LL a,LL n)
{
LL d,x,y;
gcd(a,n,d,x,y);
return d==?(x+n)%n:-;
} int main()
{
LL N,K,a[],b[]={,};
cin>>N>>K;
for(int i=;i<=N;++i) scanf("%lld",&a[i]);
LL n=K,r=,i=;
for(i=;i<=N;++i,++n,++r)
b[i]=b[i-]*n%mod*Inv(r,mod)%mod;
for(int len=;len<=N;++len)
{
LL ret=,i=,j=len;
for(;i<=len;++i,--j)
ret=(ret+a[i]*b[j]%mod)%mod;
printf("%lld\n",ret);
}
return ;
}
51nod 1161 组合数,规律的更多相关文章
- A - 你能数的清吗 51Nod - 1770(找规律)
A - 你能数的清吗 51Nod - 1770(找规律) 演演是个厉害的数学家,他最近又迷上了数字谜.... 他很好奇 xxx...xxx(n个x)*y 的答案中 有多少个z,x,y,z均为位数只有一 ...
- 51nod 1119 组合数,逆元
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1119 1119 机器人走方格 V2 基准时间限制:1 秒 空间限制:13 ...
- 51nod 1161 Partial Sums
给出一个数组A,经过一次处理,生成一个数组S,数组S中的每个值相当于数组A的累加,比如:A = {1 3 5 6} => S = {1 4 9 15}.如果对生成的数组S再进行一次累加操作,{1 ...
- 51nod 1118 机器人走方格 解题思路:动态规划 & 1119 机器人走方格 V2 解题思路:根据杨辉三角转化问题为组合数和求逆元问题
51nod 1118 机器人走方格: 思路:这是一道简单题,很容易就看出用动态规划扫一遍就可以得到结果, 时间复杂度O(m*n).运算量1000*1000 = 1000000,很明显不会超时. 递推式 ...
- 题目1161:Repeater(规律输出图形)
题目1161:Repeater 题目链接:http://ac.jobdu.com/problem.php?pid=1161 具体分析:https://github.com/zpfbuaa/JobduI ...
- 51nod 1362 搬箱子——[ 推式子+组合数计算方法 ] [ 拉格朗日插值 ]
题目:http://www.51nod.com/Challenge/Problem.html#!#problemId=1362 方法一: 设 a 是向下走的步数. b 是向右下走的步数. c 是向下走 ...
- 51Nod 1362 搬箱子 —— 组合数(非质数取模) (差分TLE)
题目:http://www.51nod.com/Challenge/Problem.html#!#problemId=1362 首先,\( f[i][j] \) 是一个 \( i \) 次多项式: 如 ...
- Nowcoder 练习赛 17 C 操作数 ( k次前缀和、矩阵快速幂打表找规律、组合数 )
题目链接 题意 : 给定长度为n的数组a,定义一次操作为: 1. 算出长度为n的数组s,使得si= (a[1] + a[2] + ... + a[i]) mod 1,000,000,007: 2. ...
- Qwerty78 Trip(组合数,规律,逆元)
Qwerty78 Trip time limit per test 2 seconds memory limit per test 64 megabytes input standard input ...
随机推荐
- "零代码”开发B/S企业管理软件之二:怎么创建数据源
声明:该软件为本人原创作品,多年来一直在使用该软件做项目,软件本身也一直在改善,在增加新的功能.但一个人总是会有很多考虑不周全的地方,希望能找到做同类软件的同行一起探讨. 本人文笔不行,能把意思表达清 ...
- django模板之导入与继承
组件 母版 子模板继承 2.静态文件相关 {% load static %} <link rel=-dist/css/bootstrap.css %}> <link rel=&quo ...
- Parcel
1.IPC解决方案 而非 序列化机制 Container for a message (data and object references) that can be sent through an ...
- 006-HotSpot JVM收集器
一.概述 1.1.图解 上面有7中收集器,分为两块,上面为新生代收集器,下面是老年代收集器.如果两个收集器之间存在连线,就说明它们可以搭配使用. JVM给出了3类选择:串行收集器.并行收集器.并发收集 ...
- pandas(九)数据转换
移除重复数据 dataframe中常常会出现重复行,DataFrame对象的duplicated方法返回一个布尔型的Series对象,可以表示各行是否是重复行.还有一个drop_duplicates方 ...
- python约束 与MD5加密写法
python 中约束写法有两种 1 常用的通过继承关系主动抛出异常 2 通过抽象类+抽象方法 1 常用的通过继承关系主动抛出异常写法 在本send方法中报错不会抛出异常, class BaseMes ...
- Spring Data Jpa示例(IntelliJ maven项目)
1. 在IntelliJ中新建maven项目 给出一个建好的示例,(本示例中省略了业务逻辑组件UserService) 2. 在pom.xml中配置依赖 包括: spring-context spri ...
- 优秀 H5 案例收集 Vol.2(不定期更新)
上期浏览:Vol.1 再见了,影史最性感的硬汉http://news.163.com/special/fdh5_wolverine/ 活出真我http://balfhcy.pernod-ricard- ...
- CSS 边距和填充
margin and padding are the two most commonly used properties for spacing-out elements. A margin is t ...
- 20145219 《Java程序设计》第04周学习总结
20145219 <Java程序设计>第04周学习总结 教材学习内容总结 继承 继承就是避免多个类间重复定义共同行为. 面向对象中,子类继承父类,就是把程序中相同的代码部分提升为父类. R ...