Description
Input
Output
如果有一个开关,如果你忽略它并按下所有其他的n - 1开关,所有的m灯都将打开,输出“YES”, 如果没有这样的开关,输出“NO”。
Sample Input
Input
4 5 10101 01000 00111 10000
Output
YES
Input
4 5 10100 01000 00110 00101
Output
NO
注意:输入就是一个坑,要把它转换成字符再存到数组中,因为没有空格
思路:先判断每一行有几个1,在判断有1的每一列是否还有1,有1就标记一下,在循环中加加一下,要是最终的数等于上面1的个数 就是找出来了,跳出就行,要是没有,遍历下一行
注意break,没加上是时间超限
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int a[2001][2001];
int main()
{
char c;
int n,m,i,j,k,f=0;
scanf("%d%d",&n,&m);
getchar();
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
c=getchar();
a[i][j]=c-48;
}
getchar();
}
for(i=0;i<n;i++)
{
int aa=0;
int b=0;
for(j=0;j<m;j++)
{
int p=0;
if(a[i][j]==1)
{
aa++;
for(k=0;k<n;k++)
{
if(k!=i)
if(a[k][j]==1)
{p=1;break;}
}
}
if(p==1)
b++;
}
if(aa==b)
{
printf("YES\n");
f=1;
break;
}
}
if(f==0)
printf("NO\n");
return 0;
}