首先,惯例看下题目要求:

在 MMORPG《最终幻想14》的副本“乐欲之所瓯博讷修道院”里,BOSS 机工士姆斯塔迪奥将会接受玩家的挑战。

你需要处理这个副本其中的一个机制:N×M 大小的地图被拆分为了 N×M 个 1×1 的格子,BOSS 会选择若干行或/及若干列释放技能,玩家不能站在释放技能的方格上,否则就会被击中而失败。

给定 BOSS 所有释放技能的行或列信息,请你计算出最后有多少个格子是安全的。

输入格式:

输入第一行是三个整数 N,M,Q (1≤N×M≤105,0≤Q≤1000),表示地图为 N 行 M 列大小以及选择的行/列数量。

接下来 Q 行,每行两个数 Ti​,Ci​,其中 Ti​=0 表示 BOSS 选择的是一整行,Ti​=1 表示选择的是一整列,Ci​ 为选择的行号/列号。行和列的编号均从 1 开始。

输出格式:

输出一个数,表示安全格子的数量。

输入样例:

5 5 3
0 2
0 4
1 3

输出样例:

12

然后,经过简单的数学分析,比如一行一列相交一点,一行两列相交两点,两行三列相交6点,所以要算安全格子时要注意多减去的部分

安全格子数=总的格子数-行数×列宽-列数×行宽+多减去的部分

由于0时为行,1时为列,所以很容易得到下面的代码:

a,b,c=map(int,input().split())
d,e,f=0,0,[]
a1,a2=0,0
for i in range(c):f.extend(list(map(int,input().split())))
for i in range(len(f)):if f[i]==0:d+=1elif f[i]==1 and i%2==0:e+=1
g=a*b-d*b-e*a+d*e
print(g)

看上去是不是很好,一检测,发现,有几个测试点始终过不了

回去仔细审题,题目并没有说boos不能连续攻击同一行/列,也即

当这样输入时:

2 3 4
0 1
1 1
1 1
0 1

结果返回0而不是2(画下图就能明白)

那么,问题来了,如何去掉重复的部分呢,我个人是尝试了各种办法,均以失败告终。但功夫不负有心人,我还是寻得了解决办法。从第二次循环开始,每次记录0/1后面的那个数,当下次再遇到时,d/e减1,这样相当于去掉了重复的影响。注意:这里不能用单个变量来记录,不然每次记录的值会变化,我这里用的是列表。最终效果如下:

a,b,c=map(int,input().split())
d,e,f,h1,h2=0,0,[],[],[]
a1,a2=0,0
for i in range(c):f.extend(list(map(int,input().split())))
for i in range(len(f)):if f[i]==0:d+=1if i>=1 and f[i+1] in h1:a1+=1h1.append(f[i + 1])elif f[i]==1 and i%2==0:e+=1if f[i+1] in h2:a2+=1h2.append(f[i + 1])
d=d-a1
e=e-a2
g=a*b-d*b-e*a+d*e
print(g)

新人报到,请多指教!

PTA 机工士姆斯塔迪奥 python相关推荐

  1. 2022天梯补题——L1-7 机工士姆斯塔迪奥

    在 MMORPG<最终幻想14>的副本"乐欲之所瓯博讷修道院"里,BOSS 机工士姆斯塔迪奥将会接受玩家的挑战. 你需要处理这个副本其中的一个机制:N×M 大小的地图被 ...

  2. 团体程序设计天梯赛-练习集 L1-087 机工士姆斯塔迪奥

    根据题意,这道题我们可以理解为在特定行列数的二维数组中按照规则去掉指定行列,统计剩下的数组中元素的总量 需要注意的是,不能忽略以下两种情况,否则会有测试点不通过!: 1.行和列交叉点会有元素重合,例如 ...

  3. c语言编程练习题:7-207 机工士姆斯塔迪奥

    #include <stdio.h> int main(){int m,n,q;int t,c;int t_arr[1000];int c_arr[1000];int m_count = ...

  4. 人类语言能力的自然演化:乔姆斯基对阵达尔文|《达尔文的危险思想》

    导语 查尔斯·达尔文用他的<物种起源>为生命的多姿多彩提供了一种解释:是演化和自然选择造就了这个星球上缤纷的生命.然而自诞生的那一天起,达尔文自然选择和演化的理论就引发过很多争议.很多人认 ...

  5. 汤姆斯的天堂梦_NOI导刊2010提高(05)【洛谷P1796】

    题目描述 汤姆斯生活在一个等级为0的星球上.那里的环境极其恶劣,每天12小时的工作和成堆的垃圾让人忍无可忍.他向往着等级为N的星球上天堂般的生活. 有一些航班将人从低等级的星球送上高一级的星球,有时需 ...

  6. 乔姆斯基专访:深度学习并没有探寻世界本质

    2020-03-30 16:21 导语:人类的意义由我们自己决定 整理 | 蒋宝尚 乔姆斯基是一位开创性的人物,尤其是他那本 <句法结构 >被认为是20世纪理论语言学研究上最伟大的贡献. ...

  7. NASA艾姆斯研究中心将跟Uber团队展开合作

    NASA艾姆斯研究中心的专家们本周将跟Uber团队展开合作以此来对未来的空中旅行进行计算机模拟测试. NASA称,通过这些测试它们将获得其已经知晓以及他们仍需要发明的其他东西的数据.

  8. 「无心插柳柳成荫」的乔姆斯基 | 追溯 AI 大师系列

    https://mp.weixin.qq.com/s?__biz=MzI5NTIxNTg0OA==&mid=2247495266&idx=1&sn=77a3eb91172618 ...

  9. 第一位女性商业程序员玛丽库姆斯去世,享年 93 岁!

    作者 | 张洁 出品 | 程序人生 (ID:coder _life) 据 The Register 报道,2 月 28 日,世界上首位使用商业应用编写计算机程序的女性.英国知名女程序员玛丽·库姆斯(M ...

  10. python 排序统计滤波器_马尔可夫链+贝叶斯滤波器的Python展示

    知乎上已经有很多的学习笔记,但读完后总有一种这东西不是我的我理解不了的感觉,所以想试着写一篇文章来加深一下自己的理解,也记录下学习中的盲点. 非常推荐大家去Github看一个项目: https://g ...

最新文章

  1. R语言实战应用精讲50篇(二十五)-时空数据统计模型:确定性预测模型
  2. LINUX下CPU Load Average的一点研究
  3. 回归树与基于规则的模型(part3)--回归模型树
  4. java面试技术问题_11个JAVA面试中常见技术问题
  5. php socket 多次发送,php模拟socket 多次发送数据的实现方法
  6. linux查看系统内存和使用量,LINUX 查看当前系统的内存使用情况
  7. 计算机绘图国标规定,机械制图教程(1.1)国家标准关于制图的一般规定
  8. qt引入txt文件_QT 读取txt文件的几种方法
  9. 大数据分析难不难好学吗?
  10. IPV4的特殊地址(包括私网地址)
  11. 污水处理成本高怎么办?智能网关+云平台提供你完美解决方案
  12. hive的beeline使用
  13. 大数据学习总结(2021版)---Mysql基础
  14. Sublime Text:选择变量的所有实例并编辑变量名称
  15. Linux命令之bc命令
  16. 东南大学银行账号信息
  17. 2021长安二中高考成绩查询,2020年陕西高考成绩已公布,速看
  18. 如何实现基于微信小程序的人脸识别
  19. 易宝正式加入openGauss社区
  20. Android 手机应用开发经验 之 通过Socket(TCP/IP)与PC通讯

热门文章

  1. Ubuntu 20.04使用微信 (亲测有效)
  2. Android 仿火萤视频桌面 神奇的LiveWallPaper
  3. 档案+户口+租房,你都清楚了吗?
  4. [有限元方法阶段汇总篇] 有限元入门简单 1D 示例程序(Helmholtz 方程)
  5. 【渗透测试笔记】之【MSF 信息搜集】
  6. html制作一个视频播放器,H5 打造属于自己的视频播放器(HTML 篇)
  7. jpg转换成pdf转换器免费版哪个好
  8. 2017先给自己定一个小目标,比方说先挣一个亿
  9. RabbitMQ登录时guest用户提示User can only log in via localhost
  10. 关于自己学C的点滴记录