题目描述

铁子和顺溜上生物课的时候不小心将几滴超级病菌滴到了培养皿上,这可急坏了他们。
培养皿可以被看成一个n*n的方格,最初病菌滴在了这n*n的格子中的某些格子,病菌的传染方式是这样的,如果一个方格与两个或多个被感染的方格相邻(两个方格相邻当且仅当它们只有一条公共边),
那么它就会被感染。现在铁子和顺溜想知道,最终所有的方格会不会都被感染。

输入描述:

第一行两个整数n,m。n表示方格的规格,m表示最初病菌所在的格子数。(1 ≤ n ≤ 1000, 0 < m < n)。
接下来m行每行两个整数xi,yi表示第xi行的第yi个格子有病菌。
数据保证不会有两个病菌初始时在同一个格子。

输出描述:

如果最终所有的方格都会被感染,输出 YES。
否则输出 NO。
示例1

输入

复制

3 2
1 2
2 2

输出

复制

NO

解题思路与易错分析:

看到这个题应该会联系到棋盘类的题目,也就是对二维数组的理解与运用,可能会有人和我犯一样的错误,就是对数组越界问题的考虑(当然只对于刚学习编程的人来说),因为可以对数组进行越界访问,但是越界的数组的值是不确定的,可能为任意的值,说一下解决的方法其实思路也简单,

第一种就是定义更大的数组然后用中间的部分,这样也就避免了数组的越界。

第二中就是在进行判断是加条件判断移动的是否已经越界(和算法竞赛入门经典中蛇形填数用法一样)简单的说就是,先判断其中条件为当前的元素为已经感染的而且移动后的行数与列数既不能大于最大的也不能小于最小的

法二在这里用有点麻烦,所以我选用第一种的方法:

下面附上我的代码:

#include <iostream>
using namespace std;
int ceil[1004][1004] = {0};
int n,m,x,y;;
int main()
{
    cin >> n >> m;
    for(int i = 1; i <= m; i++)
    {
        cin >> x >> y;
        ceil[x][y] = 1;
    }
    for(int i = 1; i <= n; i++)
    {
        for(int j = 1; j <=n; j++)
        {
            if(!ceil[i][j])
            {
                int cnt = 0;
                if(ceil[i+1][j]) cnt++;
                if(ceil[i-1][j]) cnt++;
                if(ceil[i][j+1]) cnt++;
                if(ceil[i][j-1]) cnt++;
                if(cnt >= 2) ceil[i][j] = 1;
                else
                {
                    cout << "NO\n";
                    return 0;
                }
            }
        }
    }
    cout << "YES\n";
    return 0;
}

牛客小白月赛4--病菌感染相关推荐

  1. 牛客小白月赛16 小石的签到题(博弈)

    牛客小白月赛16 小石的签到题 链接:https://ac.nowcoder.com/acm/contest/949/A来源:牛客网 题目描述 输入描述: 共一行,输入一个数 nnn . 输出描述: ...

  2. F.孤独(牛客小白月赛39)

    F.孤独(牛客小白月赛39) 题意: 给定一棵树,寻找一个路径,将断掉所有与这个路径上的点相连的边,使得剩下的最大连通块的大小最小 题解: 这题有点印象,感觉做过,至少这个方法肯定遇到过 设dp[u] ...

  3. 牛客小白月赛58 B(暴力)C(思维)D(dp滚动数组优化)

    牛客小白月赛58 感觉没什么意思,这场月赛出题人有点问题. B 题意:给定一定的数据填充顺序和每一个填充层的名称,只有填充满了上一层才可以填充下一层. 但是每一层又属于某一个大层,一个大层中包含了若干 ...

  4. 牛客小白月赛65个人题解A-E

    1. 牛客小白月赛65 A. 牛牛去购物 题意:给定n元,购买价格为a元的篮球和价格为b的篮球,数量不定,要使得花掉的钱最多,也就是剩余的钱数最少,求这个值 (1 <= n, a, b < ...

  5. 牛客小白月赛24 J.建设道路

    牛客小白月赛24 J.建设道路 题目链接 题目描述 牛牛国有 nnn 个城市,编号为 1-n,第 iii 个城市有一个价值 aia_iai​ ,牛国的国王牛阔落特别喜欢在牛牛国旅游,并且他不想每次旅游 ...

  6. 牛客小白月赛4 D.郊区春游

    牛客小白月赛4 D.郊区春游 题目链接 题目描述 今天春天铁子的班上组织了一场春游,在铁子的城市里有 nnn 个郊区和 mmm 条无向道路,第 iii 条道路连接郊区 AiA_iAi​ 和 BiB_i ...

  7. 牛客小白月赛25 C.白魔法师

    牛客小白月赛25 C.白魔法师 题目链接 题目描述 你是一个白魔法师. 现在你拿到了一棵树,树上有 个点,每个点被染成了黑色或白色. 你可以释放一次魔法,将某个点染成白色.(该点不一定是黑色点,也可以 ...

  8. 牛客小白月赛60(A~C)题解

    原题地址:牛客小白月赛60_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 题目A:小竹与妈妈 题意:输出(x-b)/a即可,没什么好说 代码: #include< ...

  9. 牛客小白月赛5 I.区间 (interval)

    牛客小白月赛5 I.区间 (interval) 题目链接 题目描述 Apojacsleam喜欢数组.他现在有一个n个元素的数组a,而他要对a[L]-a[R]进行M次操作:操作一:将a[L]-a[R]内 ...

最新文章

  1. mysql 多数据库文件_今天突然发现我的Linux下MySQL数据库目录多了好多文件
  2. 2021年春季学期-信号与系统-第六次作业参考答案-第十一小题
  3. vsftpd服务安装与虚拟用户配置
  4. Kubernetes1.13.1部署Kuberneted-dashboard v1.10.1
  5. sorl6.0+jetty+mysql搭建solr服务
  6. 最新房天下登录接口(RSA)JS逆向分析
  7. Docker和K8S对比
  8. 微型计算机的工作过程是执行程序过程吗,微型计算机的工作过程和主要性能指标...
  9. 运行命令、文件扩展名速查、Windows运行命令大全
  10. 连接ftp服务器教程
  11. 使用mysql创建表格
  12. 搭建Ubuntu虚拟机
  13. 本人大三准备写计算机安全毕业设计求想法
  14. 乐吾乐2D可视化之智慧城市可视化(一)
  15. 零基础入门金融风控-贷款违约预测_Task1
  16. 提拔!知名教授,副部长级
  17. ajax 不能打印出来数据,console打印数据,发现打印结果并非初始ajax返回的值
  18. 求一组数的组合的和为一个值的所有情况
  19. VMware vCenter虚拟机迁移
  20. uos 序列号_统信UOS桌面操作系统 v20.1021 专业版镜像

热门文章

  1. 计算机网络 —— 面试八股文
  2. 给wangeditor添加上标、下标功能
  3. Spring + SpringMVC + MyBatis的健身房课程预约平台
  4. c语言实验报告《文件操作》,c语言文件操作总结.docx
  5. 整理了以BAT三巨头为例的薪资职别资料,写给想参加春招或想跳槽的学弟学妹们
  6. 穿越雷区(Python)
  7. 【无标题】Linux环境安装Nginx
  8. 过滤器和拦截器的不同以及执行顺序和使用场景的总结
  9. 弘辽科技:春节期间如何弯道超车
  10. [转贴]日本呆了三年 我眼中的日本印象!