[JZOJ5215]【HEOI、SXOI2017】组合数问题
来源:互联网 发布:java程序员的简历 编辑:程序博客网 时间:2024/06/06 05:10
Description
求
其中
Solution
考虑组合数的实际意义
有nk个物品,取的物品数模k等于r的方案数
设
显然
特别的,当
显然可以直接矩乘优化
Code
#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <iostream>#include <cmath>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fod(i,a,b) for(int i=a;i>=b;i--)#define LL long long #define N 1000005using namespace std;LL n,p,k,r;struct node{ LL a[51][51]; friend node operator *(node x,node y) { node c; memset(c.a,0,sizeof(c.a)); fo(i,0,k-1) { fo(j,0,k-1) { fo(q,0,k-1) { (c.a[i][j]+=x.a[i][q]*y.a[q][j]%p)%=p; } } } return c; }}s,t;node ksm(node k,LL n){ if(n==1) return k; node s=ksm(k,n/2); return (n%2)?s*s*k:s*s;}int main(){ cin>>n>>p>>k>>r; fo(i,1,k-1) t.a[i][i]++,t.a[i-1][i]++; t.a[0][0]++,t.a[k-1][0]++; s.a[0][0]=1; t=ksm(t,n*k); s=s*t; printf("%lld\n",s.a[0][r]);}
阅读全文
0 0
- [JZOJ5215]【HEOI、SXOI2017】组合数问题
- 【JZOJ5215】【GDOI2018模拟7.9】组合数问题
- 【SHOI&SXOI2017】bzoj4870 组合数问题
- BZOJ 4870 HEOI 2017 组合数问题
- jzoj5215&&bzoj4870[Shoi2017]组合数问题 dp+矩阵快速幂
- 【jzoj5215】【BZOJ4870】【Shoi2017】【GDOI2018模拟7.9】【组合数问题】【矩阵快速幂】
- [JZOJ5214]【HEOI、SXOI2017】相逢是问候(口胡)
- HEOI 2012 旅行问题 BZOJ2746
- 一道组合数问题
- 组合数问题
- NYOJ 组合数问题
- 数的组合问题
- NOIP2016day2t1 组合数问题
- 组合数问题
- [NOIP2016] 组合数问题
- NOIP2016组合数问题
- P2822 组合数问题
- noip2016组合数问题
- 共享变量(Broadcast Variable和Accumulator)
- 检测手机多点触摸数
- codeforces 559B Equivalent Strings
- codevs 1246 丑数
- ARMv8简介
- [JZOJ5215]【HEOI、SXOI2017】组合数问题
- windows 概述
- UE4 UMG(unity的NGUI的关联理解)
- JS补充学习
- 合唱队
- POJ 3662 Telephone Lines(Dijkstra的邻接表存储)(可以作为模板题参考)
- c/c++中const的用法
- LeetCode 71. Simplify Path
- 一个整型数组里除了两个数字之外,其他的数字都出现了两次