这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 | |||
2020-2021:teams:namespace:e [2020/05/31 19:41] serein |
2020-2021:teams:namespace:e [2020/05/31 19:43] (当前版本) serein |
||
---|---|---|---|
行 11: | 行 11: | ||
的,反之就是合法的矩阵。 | 的,反之就是合法的矩阵。 | ||
- | 示例代码: | + | AC代码: |
- | <code/c> | + | <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> | ||