codevs 3061 质子撞击炮②
【抱歉数据错误~~已修复】
欧盟简直是太贪心了。继完成与苏联的合作灭了尤里之后,继续与苏联交战。可惜的是,在这期间,传说中的小日本(旭日帝国·升阳帝国)居然强大起来了。盟军重新与苏联合作,准备歼灭日本。在小爱(爱因斯坦)之后,不少盟军的杰出科学家合作发明了闪电风暴二代:质子撞击炮。它的好处就是冷却时间短,威力大。每当一次攻击过后,五发质子能量炮弹一齐落在敌人基地里,造成毁灭性的打击。缺点就是,炮弹先打到外太空再掉进敌人家中,飞的时间太长了。盟军老大迫不及待的想知道这次攻击能毁掉日本多少建筑物,请你编程帮忙算一下。数据详见输入描述。
输入的第一行n,表示敌方阵营的大小。
输入的第2~n+1,表示输入一个敌方阵营图。阵营图中每个元素由0-9组成。0表示没有建筑物,其余数字表示当前建筑物的血量值。(默认每个建筑物占一个方格)。
输入的接下来五行,表示五发质子能量炮弹的落点中心,表示落点在笛卡尔坐标系的某个点上。质子能量炮弹对中心造成2点伤害,对以该点为九宫格中心的其他八个方格造成一点伤害。如果某个点的建筑物血量被轰击至0或更低,则称这个建筑物被击毁。
仅一行,被击毁的建筑物数量。
5
0 3 1 2 4
1 3 4 1 0
0 0 3 4 1
1 3 4 5 0
0 0 9 0 0
1 2
2 2
4 3
4 3
2 4
8
(点a,点b)表示第a行第b列
原题有误,我更正一下。
顺便加强了数据(最大1000*1000的邻接矩阵);
#include<cstdio>
int x,y;
int n;
int a[+][+];
bool b[+][+];
int dx[]={,,,,,,-,-,-};
int dy[]={,,,-,,-,,,-};
void daji(int x,int y)
{
a[x][y]-=;
for(int i=;i<=;i++)
a[x+dx[i]][y+dy[i]]-=;
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
{
scanf("%d",&a[i][j]);
if(a[i][j]!=) b[i][j]=;
}
for(int i=;i<=;i++)
{
scanf("%d%d",&x,&y);
daji(x,y);
}
int ans=;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
if(a[i][j]<=&&b[i][j]==true)
ans++;
printf("%d",ans);
return ;
}
codevs 3061 质子撞击炮②的更多相关文章
- 3016 质子撞击炮 II
3016 质子撞击炮 II 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description [抱歉数据错误~~已修 ...
- codevs 3289 花匠
题目:codevs 3289 花匠 链接:http://codevs.cn/problem/3289/ 这道题有点像最长上升序列,但这里不是上升,是最长"波浪"子序列.用动态规划可 ...
- codevs 1082 线段树练习 3(区间维护)
codevs 1082 线段树练习 3 时间限制: 3 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 给你N个数,有两种操作: 1:给区 ...
- codevs 1285 二叉查找树STL基本用法
C++STL库的set就是一个二叉查找树,并且支持结构体. 在写结构体式的二叉查找树时,需要在结构体里面定义操作符 < ,因为需要比较. set经常会用到迭代器,这里说明一下迭代器:可以类似的把 ...
- codevs 1576 最长上升子序列的线段树优化
题目:codevs 1576 最长严格上升子序列 链接:http://codevs.cn/problem/1576/ 优化的地方是 1到i-1 中最大的 f[j]值,并且A[j]<A[i] .根 ...
- codevs 1080 线段树点修改
先来介绍一下线段树. 线段树是一个把线段,或者说一个区间储存在二叉树中.如图所示的就是一棵线段树,它维护一个区间的和. 蓝色数字的是线段树的节点在数组中的位置,它表示的区间已经在图上标出,它的值就是这 ...
- codevs 1228 苹果树 树链剖分讲解
题目:codevs 1228 苹果树 链接:http://codevs.cn/problem/1228/ 看了这么多树链剖分的解释,几个小时后总算把树链剖分弄懂了. 树链剖分的功能:快速修改,查询树上 ...
- codevs 1082 线段树区间求和
codevs 1082 线段树练习3 链接:http://codevs.cn/problem/1082/ sumv是维护求和的线段树,addv是标记这歌节点所在区间还需要加上的值. 我的线段树写法在运 ...
- codevs 1052 地鼠游戏
1052 地鼠游戏 http://codevs.cn/problem/1052/ 题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能利用一切时间认真高效地学习,他不 ...
随机推荐
- Maven安装配置【WIN10】
环境 WIN10 Maven 3.5.3 下载 下载地址:https://maven.apache.org/download.cgi 安装配置 选择好路径后一路 next 默认,安装完成. 环境变量设 ...
- C语言程序设计(基础)- 第2周作业
1.阅读提问的智慧,要求仔细阅读链接内容,用自己的话描述你的收获,并举例子说明应该如何提问. 2.所有同学请在自己电脑上配置git.编译器(win10 系统的话就Dev-C++).翻译软件,十一回校后 ...
- JAVA中GridBagLayout布局管理器应用详解
很多情况下,我们已经不需要通过编写代码来实现一个应用程序的图形界面,而是通过强大的IDE工具通过拖拽辅以简单的事件处理代码即可很轻松的完成.但是我们不得不面对这样操作存在的一些问题,有时候我们希望能够 ...
- socket_sever实现多客户端并发
#!/usr/bin/env python # -*- coding:utf-8 -*- import socketserver class mysever(socketserver.BaseRequ ...
- day-6 机器学习概念及应用
学习玩Python基础语法,今天开始进行机器学习,首先了解下机器学习和深度学习的一些基本概念和术语: 1. 机器学习概念及应用 2. 深度学习概念及应用 3. 机器学习基本术语及举例 4. 机 ...
- nyoj水池数目
水池数目 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图,这个地 ...
- JAVA_SE基础——65.StringBuffer类 ②
字符串特点:字符串是常量:它们的值在创建之后不能更改. 字符串的内容一旦发生了变化,那么马上会创建一个新 的对象. 注意: 字符串的内容不适宜频繁修改,因为一旦修改马上就会创建一个新的对象 ...
- 记一下webstorm快键键
#####新建文件````ctrl+alt+insert````#####结构速写````div>ul>li*4>p | div>h1+p | input:text | div ...
- Code::Blocks出现64-Bit mode not compled in解决方法
原因是:Settings->compilter你选了Target x86 _64(64bit),选择Target x86 _32(32bit)即可 废了老半天劲才找到原因,希望能让朋友们少走弯路
- Python内置函数(59)——open
英文文档: open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, ope ...