社区讨论

求助大佬,70分

P1434[SHOI2002] 滑雪参与者 4已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@mi7xj8aj
此快照首次捕获于
2025/11/21 05:14
4 个月前
此快照最后确认于
2025/11/21 05:14
4 个月前
查看原帖
代码如下 #include<bits/stdc++.h> using namespace std; int R,C,map1[110][110],map2[110][110],Max1=0,jl=0; void DFS(int x,int y){ if(x<1||x>R||y<1||y>C)return; if(map1[x+1][y]<map1[x][y]){if(map2[x+1][y]!=0){map2[x][y]=max(map2[x][y],1+map2[x+1][y]);} else DFS(x+1,y);} if(map1[x][y+1]<map1[x][y]){if(map2[x][y+1]!=0){map2[x][y]=max(map2[x][y],1+map2[x][y+1]);} else DFS(x,y+1);} if(map1[x-1][y]<map1[x][y]){if(map2[x-1][y]!=0){map2[x][y]=max(map2[x][y],1+map2[x-1][y]);} else DFS(x-1,y);} if(map1[x][y-1]<map1[x][y]){if(map2[x][y-1]!=0){map2[x][y]=max(map2[x][y],1+map2[x][y-1]);} else DFS(x,y-1);} jl++; map2[x][y]=max(map2[x][y],jl); jl=max(map2[x][y],jl); } int main(){ scanf("%d%d",&R,&C); for(int i=1;i<=R;i++) for(int j=1;j<=C;j++)scanf("%d",&map1[i][j]); for(int i=1;i<=R;i++) for(int j=1;j<=C;j++){ DFS(i,j); Max1=max(Max1,jl); jl=0; } printf("%d",Max1); return 0; }

回复

3 条回复,欢迎继续交流。

正在加载回复...