[BZOJ3392]序列计数
来源:互联网 发布:软件风险有哪些 编辑:程序博客网 时间:2024/06/08 00:21
题目描述输入
两个整数m和k
输出
输出一个整数
样例输入
5 3
样例输出
10
数据规模
来源 by azui
题解:
以样例为例,排列为0 0 0 0 0,0 0 0 0 1,0 0 0 1 1,0 0 1 1 1,0 1 1 1 1,1 1 1 1 1,1 1 1 1 2,1 1 1 2 2,1 1 2 2 2,1 2 2 2 2,2 2 2 2 2, 2 2 2 2 3......
呈周期性变化。用组合数解决。
扩展欧几里得版:
#include<cstdio>typedef long long LL;const LL Mod=998244353;void Exgcd( LL a, LL b, LL &x, LL &y ) { if( !b ) { x=1; y=0; } else { Exgcd( b, a%b, y, x ); y-=(a/b)*x; }}LL Fac( LL w ) {LL res=1;for( LL i=2; i<=w; i++ ) res=i%Mod*res%Mod;return res;}LL Inv( LL w ) {//求w!的逆元LL x, y;LL jc=Fac(w);Exgcd( jc, Mod, x, y );return ( x+Mod )%Mod;} LL C( LL n, LL m ) { LL a=Inv(m);LL b=Inv(n-m);LL jc=Fac(n); return jc*a%Mod*b%Mod;}LL m, k;int main() { scanf( "%I64d%I64d", &m, &k ); printf( "%I64d\n", C( m, (k-1)%m ) ); return 0;}线性求逆元版:
#include<cstdio>typedef long long LL;const LL Mod=998244353;void Exgcd( LL a, LL b, LL &x, LL &y ) { if( !b ) { x=1; y=0; } else { Exgcd( b, a%b, y, x ); y-=(a/b)*x; }}LL Fac( LL w ) {LL res=1;for( LL i=2; i<=w; i++ ) res=i%Mod*res%Mod;return res;}LL Inv( LL w ) { if( w==1 ) return 1; return ( Mod-Mod/w*Inv( Mod%w )%Mod )%Mod;} //可参考http://blog.miskcoo.com/2014/09/linear-find-all-invertLL C( LL n, LL m ) {LL a=Inv( Fac(m) );LL b=Inv( Fac(n-m) );LL c=Fac(n); return a*b%Mod*c%Mod;}LL m, k;int main() { scanf( "%lld%lld", &m, &k ); printf( "%lld\n", C( m, (k+m-1)%m ) ); return 0;}
阅读全文
0 0
- [BZOJ3392]序列计数
- #bzoj3392#序列计数(规律 + 逆元方法)
- 特殊计数序列
- BZOJ4818 [Sdoi2017]序列计数
- 4818: [Sdoi2017]序列计数
- 【SDOI2017】序列计数
- BZOJ4818: [Sdoi2017]序列计数
- bzoj4818 [Sdoi2017]序列计数
- 【bzoj4818】[Sdoi2017]序列计数
- 差值序列计数 HDU 3450
- hdu4908 序列计数(中位数)
- 【BZOJ1211】树的计数(HNOI2004)-Prufer序列+组合计数
- 序列计数定时器在游戏中的运用
- BZOJ 1211 树的计数 Prufer序列
- 【动态规划】XMU 1588 01序列计数
- 【BZOJ 4818】【SDOI 2017】序列计数
- [DP 倍增] BZOJ 4818 [Sdoi2017]序列计数
- bzoj1211 [HNOI2004]树的计数 prufer序列
- 计算器javascript实现
- Node.js 操作Mongodb
- nodejs项目windows下开机自启动
- Spring 框架(三)
- VSCode 快捷键
- [BZOJ3392]序列计数
- sublime_key 快捷键
- Apache Maven 3.5.0配置安装
- 【Matlab】之 编程基础(一)
- Mavn 使用介绍
- 如何创建一个基本JQuery的插件
- SVN
- Linux Centos7安装Oracle12c第二版本
- 2017年8月10号提高组T3 树