1 条题解
-
0
#include<cstdio> #include<cstring> using namespace std; int f[105][105]; int a[105][105]; int r,c; int longest(int x,int y); int maxlong=-1000; int main() { scanf("%d%d",&r,&c); for (int i=1;i<=r;i++) { for (int j=1;j<=c;j++) { scanf("%d",&a[i][j]); } } memset(f,-1,sizeof(f)); for (int i=1;i<=r;i++) { for (int j=1;j<=c;j++) { int tmp=longest(i,j); maxlong=maxlong>tmp?maxlong:tmp; } } printf("%d",maxlong); return 0; } int longest(int x,int y) { if (f[x][y]<0) { int maxlen=0; if (x>1 && a[x][y]>a[x-1][y]) { int clen=longest(x-1,y); if (maxlen<clen) maxlen=clen; } if (y>1 && a[x][y]>a[x][y-1]) { int clen=longest(x,y-1); if (maxlen<clen) maxlen=clen; } if (x<c && a[x][y]>a[x+1][y]) { int clen=longest(x+1,y); if (maxlen<clen) maxlen=clen; } if (y<r && a[x][y]>a[x][y+1]) { int clen=longest(x,y+1); if (maxlen<clen) maxlen=clen; } f[x][y]=maxlen+1; } return f[x][y]; }
- 1
信息
- ID
- 1349
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 47
- 已通过
- 16
- 上传者