NOIP2016组合数问题
Posted zcysky
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NOIP2016组合数问题相关的知识,希望对你有一定的参考价值。
写着玩玩……
反正超级sb题。
#include<bits/stdc++.h> typedef long long ll; using namespace std; ll c[2010][2010],h[2010],f[2010][2010]; int n,m,k; inline int read(){ int f=1,x=0;char ch; do{ch=getchar();if(ch==‘-‘)f=-1;}while(ch<‘0‘||ch>‘9‘); do{x=x*10+ch-‘0‘;ch=getchar();}while(ch>=‘0‘&&ch<=‘9‘); return f*x; } int main(){ int T=read();k=read();c[0][0]=1; for(int i=1;i<=2001;i++){ c[i][0]=1; for(int j=1;j<=i;j++){ c[i][j]=(c[i-1][j]+c[i-1][j-1])%k; if(!c[i][j])h[i]++; f[i][j]=f[i-1][j]+h[i]; if(i==j)f[i][j]=f[i-1][j-1]+h[i]; } } while(T--){ n=read();m=read(); if(m>n)m=n; printf("%lld\n",f[n][m]); } }
以上是关于NOIP2016组合数问题的主要内容,如果未能解决你的问题,请参考以下文章