B. Switches and Lamps

链接

[https://codeforces.com/contest/985/problem/B]

题意

给你n,m,分别是n个开关,m个灯
给一个n*m的字符矩阵aij=1,表示i可以控制j这个灯
为你能否去掉一个开关使得,所有灯都亮,开始灯是暗的

分析

思维了,
统计第j个灯被多少个开关控制
每个灯逐一检查,具体看代码

代码

#include<bits/stdc++.h>
using namespace std;
const int N=2e3+10;
char a[N][N];
int n,m;
int main(){
	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
	cin>>n>>m;
		int sum[N]={0};
		for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
			if(a[i][j]=='1') sum[j]++;//统计第j个灯被多少个开关控制 
		}
		for(int i=1;i<=n;i++)
		{
			bool flag=0;
			for(int j=1;j<=m;j++)
			if(a[i][j]=='1'&&sum[j]==1) flag=1;//如果i该开关控制的灯中有一个没有其他开关控制
			//就说明不可以去掉 
			if(!flag) {//反之可以去掉 
				cout<<"YES\n"; return 0;
			}
		}
		cout<<"NO\n";
	return 0;
}
posted @ 2018-12-07 15:22  ChunhaoMo  阅读(183)  评论(0)    收藏  举报