[[http://codeforces.com/contest/1360/problem/E|题目链接]] 题目大意: 给定一个只含0,1的二维矩阵,判断这个矩阵是否合法。 题目背景是发射炮弹,一个炮弹的前方是尽头或者是其他的炮弹时,会停下。 解决方法是对每个炮弹(1)进行dfs,如果他的右侧或下册同时出现(0),则这个炮弹是非法的,有一个炮弹是非法的,则这个矩阵就是非法 的,反之就是合法的矩阵。 AC代码: #include #include #include #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