RE第二个点求助

P1434 [SHOI2002] 滑雪

同第二个点RE... ```cpp #include<bits/stdc++.h> using namespace std; struct rec{ int x,y; }; int n,m,ans,f[105][105],h,t; rec q[10005]; int Map[105][105]; int max(int x,int y){ if(x>y)return(x);return(y); } void push(int x,int y,int len){ if(x<=0 || y<=0 || x>n || y>m)return; q[++t].x=x;q[t].y=y; f[x][y]=max(f[x][y],len); ans=max(ans,len); } void bfs(int x,int y){ if(f[x][y]>0)return; h=0;t=0;int xx,yyy,fff; push(x,y,1); while(h<=t){ xx=q[++h].x;yyy=q[h].y;fff=f[xx][yyy]+1; if(Map[xx+1][yyy]<Map[xx][yyy])push(xx+1,yyy,fff); if(Map[xx-1][yyy]<Map[xx][yyy])push(xx-1,yyy,fff); if(Map[xx][yyy+1]<Map[xx][yyy])push(xx,yyy+1,fff); if(Map[xx][yyy-1]<Map[xx][yyy])push(xx,yyy-1,fff); } return; } int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) scanf("%d",&Map[i][j]); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) bfs(i,j); printf("%d",ans); } ```
by 张奕涵 @ 2018-06-19 14:04:37


|