云南省青少年编程挑战赛动态规划专项赛提高组
已结束
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