云南省青少年编程挑战赛动态规划专项赛提高组

已结束 IOI 开始于: 2026-3-28 14:00 4 小时 主持人: 33
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 505, Mod = 1e9+7;
int n,a[N][N],f[N][N][2];
signed main(){
	freopen("duobianxing.in","r",stdin);
	freopen("duobianxing.out","w",stdout);
	cin>>n;
	for(int i = 1; i<=n; i++) for(int j = 1; j<=n; j++) cin>>a[i][j];
	for(int i = 1; i<=n; i++) f[i][i][0] = 1;
	for(int len = 2; len<=n; len++){
		for(int i = 1; i+len-1<=n; i++){
			int j = i+len-1;
			for(int k = i+1; k<=j; k++) (f[i][j][0] += (f[i][k][1])*(f[k][j][0]+f[k][j][1])%Mod)%=Mod;
			if(a[i][j]) for(int k = i; k<j; k++) (f[i][j][1] += (f[i][k][0]+f[i][k][1])*(f[k+1][j][0]+f[k+1][j][1])%Mod)%=Mod;
		}
	}
	cout<<(f[1][n][0]+f[1][n][1])%Mod<<"\n";
	return 0;
}
状态
已结束
规则
IOI
题目
4
开始于
2026-3-28 14:00
结束于
2026-3-28 18:00
持续时间
4 小时
主持人
参赛人数
33