1 条题解
-
1罗悦容 (Sharon) LV 9 @ 2023-1-19 19:40:51
这是一道DP的例题,找对公式即可,代码如下:
#include<cstdio> #include<iostream> using namespace std; char s[255][255]; int f[255][255],a[255]={0}; int main() { int n; cin>>n; for(int i=1;i<=n;i=i+1) { for(int j=1;j<=n;j=j+1)cin>>s[i][j]; } for(int i=n;i>0;i=i-1) { for(int j=n;j>0;j=j-1) { if((s[i][j]-'0')>0) { f[i][j]=((f[i+1][j]<f[i][j+1])?f[i+1][j]:f[i][j+1]); f[i][j]=((f[i][j]<f[i+1][j+1])?f[i][j]:f[i+1][j+1]); f[i][j]=f[i][j]+1; } for(int k=2;k<=f[i][j];k=k+1)a[k]=a[k]+1; } } for(int i=2;i<=n;i=i+1) { if(a[i]!=0)printf("%d %d\n",i,a[i]); } return 0; }
- 1
信息
- ID
- 599
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 5
- 已通过
- 5
- 上传者