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. 千万不要用window自带文本编辑器编辑配置文件或者代码

    1 引言 用windows自带的text文本在最前面会带入看不到的BOM,导致异常 2 代码 package main import ( "strings" "fmt&q ...

  2. Socket心跳机制-JS+PHP实现

    本文是我在实际工作中用到的Socket通信,关于心跳机制的维护方式,特意总结了一下,希望对朋友们有所帮助. Socket应用:首先Socket 封装了tcp协议的,通过长连接的方式来与服务器通信,是由 ...

  3. 为什么会有jQuery、Dojo、Ext、Prototype、YUI、Zepto这么多JS包?

    目前流行的JS框架很多Dojo .Scriptaculous .Prototype .yui-ext .Jquery .Mochikit.mootools .moo.fx 等.当然还有很多我都不熟悉的 ...

  4. vim替换字符串

    1. s 命令来替换字符串 :s/vivian/sky/ #替换当前行第一个 vivian 为 sky :s/vivian/sky/g #替换当前行所有 vivian 为 sky :n,$s/vivi ...

  5. Odoo中的记录集

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826218.html 一:record set 1:获取记录集 1)在@api.multi修饰器修饰的函数 ...

  6. Httpd服务入门知识-Httpd服务常见配置案例之Apache的工作做状态status页面

    Httpd服务入门知识-Httpd服务常见配置案例之Apache的工作做状态status页面 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.status功能概述 status页 ...

  7. 攻防世界高手进阶之Web_python_block_chain(2018年DDCTFmini blockchain)

    打开题目大概看了一下,是有关区块链的题目, 感觉代码要格式化一下,不然没法看 代码格式化站点:https://www.html.cn/tool/js_beautify/ hash of genesis ...

  8. Haproxy 让后端RS记录真实IP

    一.修改haproxy.cfg配置文件,在defaults中加入如下两行,并重启haproxy. vim /etc/haproxy/haproxy.cfg defaults option http-s ...

  9. 实战 MySQL 8.0.17 Clone Plugin(转)

    背景 很神奇,5.7.17 和 8.0.17,连续两个17小版本都让人眼前一亮.前者加入了组复制(Group Replication)功能,后者加入了克隆插件(Clone Plugin)功能.今天我们 ...

  10. IDEA集成jacoco

    穷乡僻壤的人犯罪率低,不是因为他们高尚,而是因为没有选择:没有选择就不会有痛苦. --<黑冰·郭小鹏> 参考资料:https://www.jacoco.org/jacoco/trunk/d ...