跳至内容
CVBB ACM Team
用户工具
注册
登录
站点工具
搜索
工具
显示页面
修订记录
Copy this page
导出 PDF
反向链接
最近更改
媒体管理器
网站地图
注册
登录
>
最近更改
媒体管理器
网站地图
您在这里:
front_page
»
2020-2021
»
teams
»
namespace
»
e
2020-2021:teams:namespace:e
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
[[http://codeforces.com/contest/1360/problem/E|题目链接]] 题目大意: 给定一个只含0,1的二维矩阵,判断这个矩阵是否合法。 题目背景是发射炮弹,一个炮弹的前方是尽头或者是其他的炮弹时,会停下。 解决方法是对每个炮弹(1)进行dfs,如果他的右侧或下册同时出现(0),则这个炮弹是非法的,有一个炮弹是非法的,则这个矩阵就是非法 的,反之就是合法的矩阵。 AC代码: <code c> #include<cstdio> #include<algorithm> #include<iostream> #define bug printf("!!!!!\n") const int MAX_N=105; char s[110], laji[110]; int N,M,sx,sy,flag; int field[MAX_N][MAX_N+1]; bool dfs(int x, int y){ if(x == N - 1 || y == M - 1) { return true; } int nx=x,ny=y+1; int nx1=x+1,ny1=y; if(field[nx][ny]==0&&field[nx1][ny1]==0){ return false; } return true; } void solve(){ for(int i=0;i<N;i++){ for(int j=0;j<M;j++){ if(field[i][j] == 1) { if (! dfs(i,j)) { printf("NO\n"); return; } } } } printf("YES\n"); return; } int main() { int t; scanf("%d", &t); while(t--) { scanf("%d",&N); gets(laji); M = N; flag=1; for(int i=0;i<N;i++){ gets(s); for(int j=0;j<M;j++){ field[i][j]=s[j]-'0'; } } solve(); } return 0; } </code>
2020-2021/teams/namespace/e.txt
· 最后更改: 2020/05/31 19:43 由
serein
页面工具
显示页面
修订记录
反向链接
Copy this page
导出 PDF
回到顶部