提交时间:2024-04-02 13:27:00

运行 ID: 141102

#include<bits/stdc++.h> using namespace std; int a[105][105],b[105][105]; struct st{ int x,y,h; }; bool cmp(st o,st p){ return o.h>p.h; } st s[10005]; int main(){ int m,n; cin>>m>>n; int cnt=1; for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ cin>>a[i][j]; s[cnt].x=i; s[cnt].y=j; s[cnt].h=a[i][j]; cnt++; } } sort(s+1,s+cnt,cmp); cnt--; for(int i=1;i<=cnt;i++){ b[s[i].x][s[i].y]=max(max(max(b[s[i].x-1][s[i].y],b[s[i].x][s[i].y-1]),b[s[i].x+1][s[i].y]),b[s[i].x][s[i].y+1])+1; } int maxn=0; for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ maxn=max(maxn,b[i][j]); } } cout<<maxn; }