救救我p3185 60分wa
查看原帖
救救我p3185 60分wa
1268670
wangyiming2026楼主2024/8/14 21:39
#include<bits/stdc++.h>
#define ll long long
using namespace std;![](D://屏幕截图 2024-08-14 213810)
const int N=35,K=15,mod=1e9+9;
int n,m,c,a[K];
ll ans,yh[N*N][N*N],g[N][N],f[K][N][N]; 
int main(){
	for(int i=0;i<=N*N-1;i++){
		yh[i][0]=1;
		for(int j=1;j<=i;j++) 
			yh[i][j]=(yh[i-1][j]+yh[i-1][j-1])%mod;
	}
	cin>>n>>m>>c;
	f[0][0][0]=1; 
	for(int k=1;k<=c;k++){
		cin>>a[k];
		memset(g,0,sizeof(g));
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				if(i*j>=a[k]){
					g[i][j]=yh[i*j][a[k]];
					for(int x=1;x<=i;x++){
						for(int y=1;y<=j;y++){
							if(x<i||y<j){
								g[i][j]-=g[x][y]*yh[i][x]%mod*yh[j][y]%mod;	
							}
						}
					}
				}
			}
		}
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				for(int x=0;x<i;x++){
					for(int y=0;y<j;y++){
						if((i-x)*(j-y)>=a[k]){
							f[k][i][j]+=f[k-1][x][y]*g[i-x][j-y]%mod*yh[i][x]%mod*yh[j][y]%mod;
						}
					}
				}
			}
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			ans+=f[c][i][j]*yh[m][j]*yh[n][i]%mod;
		}
	}
	cout<<ans;
	return 0;
}

救救我呀

2024/8/14 21:39
加载中...