【链接】[CF985B](https://www.luogu.org/problemnew/show/CF985B)
【题意】:给n盏灯,m个开关,每次按开关只能将灯从灯灭的状态转变为灯亮,问是否存在**不按所有开关**就将所有灯打开的方法。
【分析】:有两种办法,一种代码复杂点,容易想到枚举去掉每一行,看看能不能有一行去掉后保证其他的每一列至少有一个1,注意如果去掉某行后有一列为0则这一行不行,那么要枚举下一行,就要把减去的加回来,相当于还原现场。
第二种代码简单,但是不易想到,就是判断只要**存在**某行位置为‘1’且对应列的‘1’的个数只有1个,那去掉这行就把唯一的1个去掉了,是绝对不行的。
核心代码:
```
for (int i=0; i
#include
#include
#include
using namespace std;
#define N 100010
#define M 2005
const int INF = 0x3f3f3f3f;
#define rep(i,a,b) for(int i=(a); i}
f?puts("YES"):puts("NO");

}

//找是否存在一个开关,他控制的每盏灯均由至少两个开关控制



---

include

include

include<string.h>

include<bits/stdc++.h>

using namespace std;

define N 100010

define M 2005

const int INF = 0x3f3f3f3f;

define rep(i,a,b) for(int i=(a); i<(b); i++)

define ll long long

int n,m,x,y;

char a[M][M];

int k[M];

//枚举去掉每一行,看看能不能有一行去掉后保证其他的每一列至少有一个1

int main()

{

scanf("%d%d",&n,&m);

for(int i=0;i<n;i++) //这样要以0为起点,若以1开头scanf("%s", a[i] + 1);

{

scanf("%s",&a[i]);

for(int j=0;j<m;j++)

{

if(a[i][j]=='1')

{

k[j]++;

}

}

}

for (int i=0; i<n; i++)

{

int f = 1;

for (int j=0; j<m; j++)

{

if (a[i][j] == '1' && k[j] == 1)

{

f = 0;

}

}

if (f)

{

printf("YES\n");

return 0;

}

}

printf("NO\n");

return 0;

}

CF985B Switches and Lamps【矩阵操作/枚举】的更多相关文章

  1. CF985B Switches and Lamps 思维 第十九

    Switches and Lamps time limit per test 3 seconds memory limit per test 256 megabytes input standard ...

  2. Linear regression with one variable算法实例讲解(绘制图像,cost_Function ,Gradient Desent, 拟合曲线, 轮廓图绘制)_矩阵操作

    %测试数据 'ex1data1.txt', 第一列为 population of City in 10,000s, 第二列为 Profit in $10,000s 1 6.1101,17.592 5. ...

  3. iOS开发UI篇—Quartz2D使用(矩阵操作)

    iOS开发UI篇—Quartz2D使用(矩阵操作) 一.关于矩阵操作 1.画一个四边形 通过设置两个端点(长和宽)来完成一个四边形的绘制. 代码: - (void)drawRect:(CGRect)r ...

  4. 【iOS】Quartz2D矩阵操作

    前面画基本图形时,画四边形是由几条直线拼接成的,现在有更简便的方法. 一.关于矩阵操作 1.画一个四边形 通过设置两个端点(长和宽)来完成一个四边形的绘制. 代码: - (void)drawRect: ...

  5. MATLAB命令大全和矩阵操作大全

    转载自: http://blog.csdn.net/dengjianqiang2011/article/details/8753807 MATLAB矩阵操作大全 一.矩阵的表示在MATLAB中创建矩阵 ...

  6. Matlab、R向量与矩阵操作 z

    已有 1849 次阅读 2012-8-2 15:15 |系统分类:科研笔记|关键词:矩阵 480 window border center Matlab.R向量与矩阵操作   描    述 Matla ...

  7. Python中的矩阵操作

    Numpy 通过观察Python的自有数据类型,我们可以发现Python原生并不提供多维数组的操作,那么为了处理矩阵,就需要使用第三方提供的相关的包. NumPy 是一个非常优秀的提供矩阵操作的包.N ...

  8. poj3735—Training little cats(特殊操作转化为矩阵操作)

    题目链接:http://poj.org/problem?id=3735 题目意思: 调教猫咪:有n只饥渴的猫咪,现有一组羞耻连续操作,由k个操作组成,全部选自: 1. g i 给第i只猫咪一颗花生 2 ...

  9. codeforce 985B Switches and Lamps(暴力+思维)

    Switches and Lamps time limit per test 3 seconds memory limit per test 256 megabytes input standard ...

随机推荐

  1. javaWEB简单商城项目

    javaWEB简单商城项目(一) 项目中使用到了上一篇博文的分页框架,还有mybatis,重点是学习mybatis.现在有些小迷茫,不知道该干啥,唉,不想那么多了,学就对了 一.项目功能结构 1.功能 ...

  2. python基础实践(三)

    -*-列表是新手可直接使用的最强大的python功能之一,它融合了众多重要的编程概念.-*- # -*- coding:utf-8 -*-# Author:sweeping-monkQuestion_ ...

  3. 使用jquery validate结合zui作表单验证

    1.引入jquery validate和zui <!-- jQuery (ZUI中的Javascript组件依赖于jQuery) --> <script src="${_b ...

  4. [译]14-spring 集合元素的注入

    前面的文章已经介绍了如何往bean里面注入原始类型和引用类型.我们使用bean元素的contructor-arg或property子 元素的value属性注入java原始类型;同理,我们可以使用bea ...

  5. Asp.net获取网站绝对路径的几种方法

    在编写ASP.NET应用程序的时候,有时候为了更好的进行控制静态文件的路径,以及网站部署过程中的虚拟路径等问题,采用绝对路径避免资源出现Not Found,下面先看看几种获取绝对路径的方法: 1. 以 ...

  6. Ext JS表单Ext.form.FormPanel

    1.表单 对于传统的b/s应用来说,数据录入元素是放在表单<form>标签里面的.而对于ExtJS应用来说,则可以直接使用FormPanel控件来存放表单中的元素.FormPanel继承自 ...

  7. STL之deque使用简介

    deque函数列表 函数 c.assign(beg,end)c.assign(n,elem) c.at(idx) c.back() c.begin() c.clear() deque<Elem& ...

  8. MSHflexgrid控件删除选中行

    相应的代码: Private Sub some_Click() '定义变量 Dim txtSQL As String Dim MsgText As String Dim Online_mrc As A ...

  9. poj 1932 XYZZY (最短路径)

    XYZZY Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 3105   Accepted: 887 Description ...

  10. [SP10707]COT2 - Count on a tree II

    题目大意:有一棵$n$个节点的树,第$i$个点有一个颜色$C_i$,$m$组询问,每次问$x->y$的路径上有多少种颜色 题解:树上莫队,把树按欧拉序展开成一条链,令第$i$个节点第一次出现在序 ...