BZOJ4870: [Shoi2017]组合数问题

人话题意:从nk个物品里选模k余r个物品,问方案数模P

大傻逼题,绝对傻逼题,但是考场上没几个人想出来……

太傻逼了

f[i][j]表示前i个物品选模p余j个,然后矩乘即可

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define MAXN 1010
#define MAXM 1010
#define ll long long
#define eps 1e-8
#define MOD 1000000007
#define INF 1000000000
struct mat{
	ll x[50][50];
	mat(){
		memset(x,0,sizeof(x));
	}
};
ll n;
int p,K,r;
mat C,X,R;
mat operator *(const mat &x,const mat &y){
	int i,j,k;
	mat z;
	for(i=0;i>=1;
	}
	printf("%lld\n",(C*R).x[0][r]);
	return 0;
}

/*

*/


你可能感兴趣的:(BZOJ,DP,递推,矩阵乘法)