Warning: session_start(): open(/tmp/sess_f2d0cfc7210956dc43077553e71bd5c9, O_RDWR) failed: No space left on device (28) in /data/wiki/inc/init.php on line 239
Warning: session_start(): Failed to read session data: files (path: ) in /data/wiki/inc/init.php on line 239
Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/auth.php on line 430
Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/Action/Export.php on line 103
Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/Action/Export.php on line 103
Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/Action/Export.php on line 103
[[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