博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【[六省联考2017]组合数问题】
阅读量:5458 次
发布时间:2019-06-15

本文共 820 字,大约阅读时间需要 2 分钟。

好水啊

但是我傻啊

我们设\(dp[i][j]=\sum_{t=0}^{∞}\binom{ik}{j+tk}\)

根据组合数万年不变的递推式\(\binom{n}{m}=\binom{n-1}{m-1}+\binom{n-1}{m}\)

我们有\(dp[i][j]=dp[i-1][j]+dp[i-1][(j-1+k)\%k]\)

显然这个柿子可以用矩阵优化到\(log\)

于是就没有了

有一个坑点就是当\(k=1\)的时候实际上是有\(dp[i][0]=2*dp[i-1][0]\),于是构造矩阵的时候小心一下就可以了

代码

#include
#include
#include
#define re register#define LL long longinline int read(){ re char c=getchar(); re int x=0; while(c<'0'||c>'9') c=getchar(); while(c>='0'&&c<='9') x=(x<<3)+(x<<1)+c-48,c=getchar(); return x;}LL n,k,P,r;LL ans[51][51],a[51][51];inline void did_a(){ LL mid[51][51]; for(re int i=0;i
>=1ll; did_a(); }}int main(){ n=read(),P=read(),k=read(),r=read(); for(re int i=0;i

转载于:https://www.cnblogs.com/asuldb/p/10206199.html

你可能感兴趣的文章
uva 10954 Add All
查看>>
如何让你的 Asp.Net Web Api 接口,拥抱支持跨域访问。
查看>>
ArcGIS Server 10.1 错误 service failed to start,
查看>>
MYSQL中case when then else end 用法
查看>>
C语言::模拟实现strlen函数
查看>>
利用NABCD模型进行竞争性需求分析
查看>>
Vue的ref,父节点,获取子节点数据的一个手段
查看>>
好文推荐系列--------(1)bower---管理你的客户端依赖
查看>>
一些常用的基本知识收录
查看>>
1044 火星数字
查看>>
数据劫持,订阅者模式,双向绑定
查看>>
关于使用别人方法的效率问题
查看>>
svn第一篇----入门指南
查看>>
按钮 是否可用 的控制
查看>>
隐马尔科夫模型(HMM) 举例讲解
查看>>
JedisUtils工具类模板
查看>>
NOIP2011题解
查看>>
[Python] 文科生零基础学编程系列二——数据类型、变量、常量的基础概念
查看>>
[唐胡璐]QTP技巧 - ALT+G快捷键
查看>>
P2746 [USACO5.3]校园网Network of Schools
查看>>