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. 局域网访问PHP项目网站 用IP地址进入

    先在apache中的 httpd.conf中将 Allow from 127.0.0.1 修改为Allow from all 如果你的是Allow from all的话就不需要改 然后再将 Docum ...

  2. 基于百度地图JavaScript API,员工住址统计

    公司一般都有通讯和住址的统计,但是文字化的表格根本就不知道住在哪. 用百度地图就可以轻松解决, 而且公司还经常人员变动,读取excel中的内容,就不用每次还要更改地图文件了. 在遇到需要聚餐在地图中标 ...

  3. 类例程_java战斗程序

    代码如下: package t11; import java.util.Random; public class Fight { String name; int life, attack, spee ...

  4. 如何在ppt全屏演示时仍然显示任务栏?

    相信做过ppt演讲的人会有这样的体会:有的时候希望全屏ppt时不要直接霸占全部的屏幕,至少希望能够看到任务栏,这样就可以仍然方便切换程序. 如何实现呢? 很简单,看下图吧:) https://www. ...

  5. dubbo循序渐进 - Jenkins自动化部署

    最新版安装docker pull jenkinsci/jenkins sudo chown -R 1000:1000 ~/jenkins docker run -d -p : -m 1024m -v ...

  6. 【开发笔记】-Tomcat启动时设置Jdk版本

    1. Window版本Tomcat 到bin下的setclasspath.bat文件,在文件的开始处添加如下代码: set JAVA_HOME=D:\Program Files\Java\jdk1.8 ...

  7. Android studio module生成jar包,module中引用的第三方库没有被引用,导致java.lang.NoClassDefFoundError错误。

    android studio 创建了一个Module生成jar包,这个module中有引用一些第三方的类库,比如 gson,volley等. 但是生成的jar包里,并没有将gson,volley等第三 ...

  8. Python 序列、列表(List)、元组(Tuple)

    序列 序列是Python中最基本的数据结构,包括字符串.列表.元组. 序列,顾名思义,是有序的,序列都有索引,都能进行索引.切片(截取).加(连接).乘(倍增).检查成员的操作. 因为序列有序,可通过 ...

  9. python中生成JWK(json web token)

    #需要安装pyjwt import jwt import time # 使用 sanic 作为restful api 框架 def create_token(request): grant_type ...

  10. docker-ce添加国内源-阿里docker-hub镜像

    问题现象: WARNING: bridge-nf-call-iptables is disabled WARNING: bridge-nf-call-ip6tables is disabled 问题解 ...