zoukankan      html  css  js  c++  java
  • 判断是否可以关灯

    Description

    给你 n 个开关和 m 个灯。 第 i 个开关打开某一些灯。 该信息以矩阵形式(n 行 m 列),如果第 i 个开关能打开第 j 个灯,则 a ij = 1,如果不能打开则 a ij = 0

    最初,所有 m 灯都关闭。

    开关状态仅能从“关”变为“开”。 这意味着如果两个或更多开关连接到同一个灯,那么在任何一个开关被按下后,灯将会开启,并且即使连接到这个灯的任何其他开关被按下,它也将保持开启。

    保证如果你打开所有 n 个开关,那么所有的 m 个灯都将打开。

    你的任务就是找出是否存在这样一个开关,如果你忽略(不使用)它,而是按下所有其他的n-1个开关,那么所有的m个灯都将打开。

    Input

    输入的第一行包含两个整数 n 和 m(1 ≤ n, m ≤ 2000) - 开关的数量和灯的数量。

    以下n行每行包含m个字符。 如果第i个开关打开第j个灯,则字符 a ij 等于 '1',否则等于 '0'。

    保证如果你按下所有 n 个开关,所有 m 个灯都将被打开。

    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
    ");
                f=1;
                break;
            }
        }
        if(f==0)
        printf("NO
    ");
        return 0;
    }
  • 相关阅读:
    elk系列1之入门安装与基本操作【转】
    elk系列3之通过json格式采集Nginx日志【转】
    mysql开启GTID跳过错误的方法【转】
    curl: (6) Couldn’t resolve host ‘www.ttlsa.com’【转】
    离线下载pip包进行安装【转】
    初学Memcached安装及使用【转】
    http 错误代码解释 && nginx 自定义错误【转】
    有关mysql的innodb_flush_log_at_trx_commit参数【转】
    mysqldump 逻辑备份的正确方法【转】
    谁说运维用ELK没用?我就说很有用,只是你之前不会用【转】
  • 原文地址:https://www.cnblogs.com/zcy19990813/p/9702773.html
Copyright © 2011-2022 走看看