牛客小白月赛4C——病菌感染
链接:https://www.nowcoder.com/acm/contest/134/C
来源:牛客网
- #include <bits/stdc++.h>
- using namespace std;
- #define N 1005
- int a[N][N],dir[][]={{-,,,},{,,,-}};//四周的格子
- int n,m,sum;
- bool judge(int x,int y)//判断周围的病菌数
- {
- int xx,yy,i;
- sum=;//周围病菌数
- for (i=;i<;i++)
- {
- xx=x+dir[][i];
- yy=y+dir[][i];
- if (xx<||xx>n||yy<||yy>n)//超出范围
- {
- continue;
- }
- if (a[xx][yy]==)
- {
- sum++;
- }
- }
- if (sum>=)
- {
- return true;
- }
- return false;
- }
- void bfs(int i,int j)//广搜标记被感染的格子
- {
- if (i<=||i>n||j<=||j>n||false==judge(i,j)||a[i][j]==)//若无a[i][j]==1则会死循环
- {
- return;
- }
- if (true==judge(i,j))
- {
- a[i][j]=;
- bfs(i,j-);
- bfs(i,j+);
- bfs(i-,j);
- bfs(i+,j);
- }
- }
- void test()
- {
- int i,j;
- for (i=;i<=n;i++)
- {
- for (j=;j<=n;j++)
- {
- printf("%d",a[i][j]);
- }
- printf("\n");
- }
- }
- void solve()
- {
- int i,j,r,l;
- memset(a,,sizeof(a));
- for (i=;i<m;i++)
- {
- scanf("%d %d",&r,&l);
- a[r][l]=;
- }
- // test();
- for (i=;i<=n;i++)
- {
- for (j=;j<=n;j++)
- {
- if (a[i][j]==)
- {
- bfs(i,j);
- }
- }
- }
- for (i=;i<=n;i++)//看是否全部被感染
- {
- for (j=;j<=n;j++)
- {
- if (a[i][j]==)
- {
- printf("NO\n");
- return;
- }
- }
- }
- printf("YES\n");
- return;
- }
- int main()
- {
- while (scanf("%d %d",&n,&m)!=EOF)
- {
- solve();
- // test();
- }
- return ;
- }
牛客小白月赛4C——病菌感染的更多相关文章
- 树的最长链-POJ 1985 树的直径(最长链)+牛客小白月赛6-桃花
求树直径的方法在此转载一下大佬们的分析: 可以随便选择一个点开始进行bfs或者dfs,从而找到离该点最远的那个点(可以证明,离树上任意一点最远的点一定是树的某条直径的两端点之一:树的直径:树上的最长简 ...
- 牛客网 牛客小白月赛5 I.区间 (interval)-线段树 or 差分数组?
牛客小白月赛5 I.区间 (interval) 休闲的时候写的,但是写的心情有点挫,都是完全版线段树,我的一个队友直接就水过去了,为啥我的就超内存呢??? 试了一晚上,找出来了,多初始化了add标记数 ...
- 牛客小白月赛8 - E - 诡异数字 数位DP
牛客小白月赛8 - E - 诡异数字 题意: 求区间中,满足限制条件的数字的个数. 限制条件就是某些数字不能连续出现几次. 思路: 比较裸的数位DP, DP数组开一个dp[len][x][cnt] 表 ...
- 牛客小白月赛18 Forsaken给学生分组
牛客小白月赛18 Forsaken给学生分组 Forsaken给学生分组 链接:https://ac.nowcoder.com/acm/contest/1221/C来源:牛客网 Forsaken有 ...
- 牛客小白月赛18 Forsaken喜欢数论
牛客小白月赛18 Forsaken喜欢数论 题目传送门直接点标题 Forsaken有一个有趣的数论函数.对于任意一个数xxx,f(x)f(x)f(x)会返回xxx的最小质因子.如果这个数没有最小质 ...
- 牛客小白月赛19 E 「火」烈火燎原 (思维,树)
牛客小白月赛19 E 「火」烈火燎原 (思维,树) 链接:https://ac.nowcoder.com/acm/contest/2272/E来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空 ...
- 【牛客小白月赛21】NC201604 Audio
[牛客小白月赛21]NC201604 Audio 题目链接 题目大意: 给出三点 ,求到三点距离相等的点 的坐标. 解析 考点:计算几何基础. 初中蒟蒻表示不会什么法向量.高斯消元..qwq 方法一: ...
- 【牛客小白月赛21】NC201605 Bits
[牛客小白月赛21]NC201605 Bits 题目链接 题目描述 Nancy喜欢做游戏! 汉诺塔是一个神奇的游戏,神奇在哪里呢? 给出3根柱子,最开始时n个盘子按照大小被置于最左的柱子. 如果盘子数 ...
- 牛客小白月赛16 小石的妹子 二分 or 线段树
牛客小白月赛16 这个题目我AC之后看了一下别人的题解,基本上都是线段树,不过二分也可以. 这个题目很自然就肯定要对其中一个进行排序,排完序之后再处理另外一边,另一边记得离散化. 怎么处理呢,你仔细想 ...
随机推荐
- SAP CRM系统订单模型的设计与实现
SAP成都研究院的一个部门领导让我给他的团队做一个SAP CRM One Order框架的培训,这是我准备的培训内容. 在Jerry之前的文章 基于SAP Kyma的订单编排增强介绍,我表达了自己对S ...
- Task ‘run’ not found in root project
问题现象: Task 'run' not found in root project 'springframework'. 问题原因: 没有在gradle.build文件中添加如下配置, mainCl ...
- c3p0整合mysql报错问题
启动报错: [com.mchange.v2.c3p0.DriverManagerDataSource] - Could not load driverClass com.mysql.cj.jdbc.D ...
- 圆环,扇形控件基本算法一种实现 - 代码库 - CocoaChina_让移动开发更简单
圆环,扇形控件基本算法一种实现 - 代码库 - CocoaChina_让移动开发更简单 //// CircleCore.h// Quartz//// Created by 仙人掌 on 12 ...
- Core Animation 与 GPU
https://en.wikipedia.org/wiki/Core_Animation#cite_note-apptech-1 Core Animation provides a way for d ...
- Git 初始化全局user.name 和 user.email
git config --global user.name "username" git config --global user.email "email"
- python中的sum函数.sum(axis=1)
看起来挺简单的样子,但是在给sum函数中加入参数.sum(a,axis=0)或者是.sum(axis=1) 就有点不解了 在我实验以后发现 我们平时用的sum应该是默认的axis=0 就是普通的相加 ...
- 如何用C#对Gridview的项目进行汇总统计?
上一次用了javascript对gridview进行了汇总统计,但那个统计是在客户端进行的,虽然减轻了服务器的负担,但是,当需要把统计信息汇出excel时,汇总信息却死活不出来了,所以,绕半天又绕回来 ...
- 【题解】洛谷P4391 [BOI2009] Radio Transmission(KMP)
洛谷P4391:https://www.luogu.org/problemnew/show/P4391 思路 对于给定的字符串 运用KMP思想 设P[x]为前x个字符前缀和后缀相同的最长长度 则对于题 ...
- SPOJ SUBXOR
SPOJ SUBXOR 题意 给定一个由正整数构成的数组, 求 异或和小于k 的子序列的个数. 题解 假设答案区间为 [L, R], XOR[L, R] 等价于 XOR[1, L - 1] ^ XOR ...