P1789 【Mc生存】插火把

题目背景

初一党应该都知道......

题目描述

话说有一天 linyorson 在“我的世界”开了一个 \(n\times n(n\le 100)\) 的方阵,现在他有 \(m\) 个火把和 \(k\) 个萤石,分别放在 \((x_1,y_1)...(x_m,y_m)\) 和 \((o_1,p_1)...(o_k,p_k)\) 的位置,没有光或没放东西的地方会生成怪物。请问在这个方阵中有几个点会生成怪物?

P.S.火把的照亮范围是:

    |暗|暗| 光 |暗|暗|
|暗|光| 光 |光|暗|
|光|光|火把|光|光|
|暗|光| 光 |光|暗|
|暗|暗| 光 |暗|暗|

萤石:

    |光|光| 光 |光|光|
|光|光| 光 |光|光|
|光|光|萤石|光|光|
|光|光| 光 |光|光|
|光|光| 光 |光|光|

输入格式

输入共m+k+1行。

第一行为n,m,k。

第2到第m+1行分别是火把的位置xi yi。

第m+2到第m+k+1行分别是萤石的位置oi pi。

注:可能没有萤石,但一定有火把。

所有数据保证在int范围内。

输出格式

有几个点会生出怪物。

输入输出样例

输入 #1

5 1 0

3 3

输出 #1

12

【思路】

模拟

很暴力的模拟

【闲话】

如果这片题解过掉的话

那就是我通过的第100篇题解了

纪念一下,所以我还是选择MC生存系列的题来交我的第100篇题解

毕竟我从12年左右就开始玩MC了

很有感情

【题目大意】

给你一块nn的地和萤石、火把若干

萤石可以照亮以自身为中心5
5的矩阵

火把可以照亮上下左右各两格。

四个方向对角线上各一格

求没法被照亮的方块块数

【题目分析】

读入数据

因为只有萤石和火把这两种可能

所以用if判断一下放置的是什么就好了

然后如果是火把

那就将他的上下左右的两个和对角线四个方向上各一格都标为亮了

如果是萤石

那就将以他为中心的5*5的矩阵上面每一个方块都标为亮的

标记的话可以用for循环来标记

也可以直接if标记

【注意】

放置了火把和萤石的方块是亮的

不会生成怪物。

【完整代码】

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int n,m,k;//n为边长,m为火把,k为萤石
cin>>n>>m>>k;
int owo,qwq;
int awa,pwp;
int a[n+5][n+5];
memset(a,0,sizeof(a));
for(int i=1;i<=m;++i)//火把循环,标为1代表火把
{
cin>>owo>>qwq;
a[owo][qwq]=1;
}
for(int j=1;j<=k;++j)//萤石循环,标为2代表萤石
{
cin>>awa>>pwp;
a[awa][pwp]=2;
}
for(int l=1;l<=n;++l)
{
for(int u=1;u<=n;++u)
{
if(a[l][u]==1)
{
if(a[l-1][u]==0)a[l-1][u]=3;//3代表有光但不是火把也不是萤石
if(a[l-2][u]==0)a[l-2][u]=3;
if(a[l+1][u]==0)a[l+1][u]=3;
if(a[l+2][u]==0)a[l+2][u]=3;
if(a[l][u+1]==0)a[l][u+1]=3;
if(a[l][u+2]==0)a[l][u+2]=3;
if(a[l][u-2]==0)a[l][u-2]=3;
if(a[l][u-1]==0)a[l][u-1]=3;
if(a[l-1][u-1]==0)a[l-1][u-1]=3;
if(a[l+1][u+1]==0)a[l+1][u+1]=3;
if(a[l-1][u+1]==0)a[l-1][u+1]=3;
if(a[l+1][u-1]==0)a[l+1][u-1]=3;
}
if(a[l][u]==2)
{
if(a[l-1][u]==0)a[l-1][u]=3;//3代表有光但不是火把也不是萤石
if(a[l-1][u+1]==0)a[l-1][u+1]=3;
if(a[l-1][u-1]==0)a[l-1][u-1]=3;
if(a[l-1][u+2]==0)a[l-1][u+2]=3;
if(a[l-1][u-2]==0)a[l-1][u-2]=3;
if(a[l-2][u+2]==0)a[l-2][u+2]=3;
if(a[l-2][u-2]==0)a[l-2][u-2]=3;
if(a[l-2][u-1]==0)a[l-2][u-1]=3;
if(a[l-2][u+1]==0)a[l-2][u+1]=3;
if(a[l-2][u-1]==0)a[l-2][u-1]=3;
if(a[l-2][u]==0)a[l-2][u]=3;
if(a[l+1][u-2]==0)a[l+1][u-2]=3;
if(a[l+1][u+2]==0)a[l+1][u+2]=3;
if(a[l+1][u-1]==0)a[l+1][u-1]=3;
if(a[l+1][u+1]==0)a[l+1][u+1]=3;
if(a[l+1][u]==0)a[l+1][u]=3;
if(a[l+2][u+1]==0)a[l+2][u+1]=3;
if(a[l+2][u-1]==0)a[l+2][u-1]=3;
if(a[l+2][u+2]==0)a[l+2][u+2]=3;
if(a[l+2][u-2]==0)a[l+2][u-2]=3;
if(a[l+2][u]==0)a[l+2][u]=3;
if(a[l][u-1]==0)a[l][u-1]=3;
if(a[l][u-2]==0)a[l][u-2]=3;
if(a[l][l+2]==0)a[l][l+2]=3;
if(a[l][u+1]==0)a[l][u+1]=3;
}
}
}
int js=0;
for(int p=1;p<=n;++p)
{
for(int o=1;o<=n;++o)
{
if(a[p][o]==0)
js++;
}
}
cout<<js<<endl;
return 0;
}

第100篇在洛谷上面通过的题解,

爱我MC

爱我OI

洛谷 P1789 【Mc生存】插火把 题解的更多相关文章

  1. 洛谷P1854 花店橱窗布置 分析+题解代码

    洛谷P1854 花店橱窗布置 分析+题解代码 蒟蒻的第一道提高+/省选-,纪念一下. 题目描述: 某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定 ...

  2. HAOI2006 (洛谷P2341)受欢迎的牛 题解

    HAOI2006 (洛谷P2341)受欢迎的牛 题解 题目描述 友情链接原题 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之 ...

  3. 洛谷P3412 仓鼠找$Sugar\ II$题解(期望+统计论?)

    洛谷P3412 仓鼠找\(Sugar\ II\)题解(期望+统计论?) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1327573 原题链接:洛谷P3412 ...

  4. 洛谷P3502 [POI2010]CHO-Hamsters感想及题解(图论+字符串+矩阵加速$dp\&Floyd$)

    洛谷P3502 [POI2010]CHO-Hamsters感想及题解(图论+字符串+矩阵加速\(dp\&Floyd\)) 标签:题解 阅读体验:https://zybuluo.com/Junl ...

  5. BZOJ4946 & 洛谷3826 & UOJ318:[NOI2017]蔬菜——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4946 https://www.luogu.org/problemnew/show/P3826 ht ...

  6. 洛谷1578:[WC2002]奶牛浴场——题解

    https://www.luogu.org/problemnew/show/P1578#sub 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少.为了讨好奶牛,John决定在牛场中建 ...

  7. 洛谷P2460 [SDOI2007]科比的比赛(题解)(贪心+搜索)

    科比的比赛(题解)(贪心+搜索) 标签:算法--贪心 阅读体验:https://zybuluo.com/Junlier/note/1301158 贪心+搜索 洛谷题目:P2460 [SDOI2007] ...

  8. 洛谷 P1146 【硬币翻转】题解

    很久很久之前做过的一道题 翻n-1枚硬币,就是有一枚不翻,也可以理解为翻一枚 直接上程序,看程序说话 #include<iostream> using namespace std; ; b ...

  9. 洛谷P1972 [SDOI2009]HH的项链 题解

    [SDOI2009]HH的项链 题目背景 无 题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH 不 ...

随机推荐

  1. ASP.NET Core应用程序的参数配置及使用(转载)

    本文结构 提前准备 参数配置方式 appsettings.json 环境变量 命令行参数 在控制器中使用配置参数 注入IConfiguration对象 注入IOptions对象 总结 应用程序的开发不 ...

  2. JavaScript入门(三)

    JavaScript入门篇—JSONP的应用 什么是JSONP 个人理解:将服务器端返回的json数据封装成JavaScript对象,非正式传输协议. JSONP解决了什么问题 Ajax不支持跨域请求 ...

  3. C#读写设置修改调整UVC摄像头画面-白平衡

    有时,我们需要在C#代码中对摄像头的白平衡进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄 ...

  4. The underlying connection was closed: An unexpected error occurred on a receive

    解决方法 webRequest.KeepAlive = false; ServicePointManager.ServerCertificateValidationCallback += (s, ce ...

  5. Python基础之面向对象编程

    面向对象编程 —— Object Oriented Programming 简写 OOP 01. 面向对象基本概念 我们之前学习的编程方式就是 面向过程 的 面向过程 和 面向对象,是两种不同的 编程 ...

  6. python基础--初始数据结构

    目录: 一.知识点1.IDE 集成开发环境2.字符格式化输出3.数据运算4.循环loop5.数据类型6.列表与元组 二.例子1.输入名字.年龄.工作.薪水,进行格式化的输出.2.for语句实现输入密码 ...

  7. android.view.ViewRoot$CalledFromWrongThreadException 异常的解决方案

    https://blog.csdn.net/vincent_czz/article/details/7070354 https://stackoverflow.com/questions/210141 ...

  8. elasticsearch基础查询

    Es基础数据类型 string 字符串类型,es中最常用的类型,官方文档 比较重要的参数: index分析 analyzed(默认) not_analyzed no store存储 true 独立存储 ...

  9. 无法打开jetbrains官网

    找到下面hosts文件,用记事本打开,删除关于jetbrain的文字 需要管理员权限才能操作这个文档: 先后输入cmd和 notepad hosts 删除掉关于jetbrains的模块,再次访问htt ...

  10. php装饰器模式(decorator pattern)

    十一点了. <?php /* The decorator pattern allows behavior to be added to an individual object instance ...