当前位置:网站首页>OpenJudge NOI 2.1 1661:Bomb Game
OpenJudge NOI 2.1 1661:Bomb Game
2022-07-06 07:12:00 【君义_noip】
【题目链接】
OpenJudge NOI 2.1 1661:Bomb Game
【题目翻译】
题目
炸弹游戏
描述
Bosko和Susko在一个有A行B列组成的矩形棋盘上玩一个有趣的游戏。
当游戏开始时,Susko将他的虚拟碉堡放在棋盘的某一位置,然后Bosko选择某一区域扔他的虚拟炸弹。在每一次爆炸之后,Susko将会告诉Bosko他的碉堡是否在爆炸的范围中。
扔在(R, S)的炸弹的爆炸范围是边长为P的正方形(P总是奇数)。正方形的中心在(R, S),正方形的边与棋盘的边平行,长度为P。
在已经扔下一些炸弹之后, Bosko应该找出Susko碉堡的位置,然而这个位置可能不是唯一的,你的任务是帮助Bosko计算出可能的位置的数量。
输入
第一行包含三个整数A,B,和K(1 <= A, B, K <=100.)A表示行的数量,B表示列的数量,K表示扔炸弹的数量。
接下来的K行包含了整数R, S, P 和T,描述了在第R行和第S列处投掷的炸弹,直径为P,1 <= R < = A,1 < = S < = B,1 < = P < = 99,P为奇数。如果碉堡在这个炸弹的范围内,T等于1;否则为 0。
输出
输出Susko的碉堡可能存在的位置的数量。
样例输入
5 5 3
3 3 3 1
3 4 1 0
3 4 3 1
样例输出
5
来源
Croatia OI 2002 National – Juniors
【题目考点】
1. 枚举
【解题思路】
枚举棋盘上的所有位置,假设碉堡存在于枚举出的一个位置,看此时炸弹轰炸的结果是否与给定的结果是相同的。如果所有炸弹轰炸后的结果与给定的结果都是相同的,那么当前碉堡所在的位置就是一个碉堡可能存在的位置,碉堡可能存在的位置计数加1。
最后输出碉堡可能存在的位置数量。
【题解代码】
#include<bits/stdc++.h>
using namespace std;
#define N 105
struct Bomb
{
int r, s, p, t;
int isCover(int x, int y)//(x,y)位置是否在该炸弹的爆炸范围之内
{
if(abs(x - r) <= p / 2 && abs(y - s) <= p / 2)
return 1;
else
return 0;
}
};
Bomb bm[N];//bm[i]:第i个炸弹
int main()
{
int a, b, k, ans = 0;//ans:可能的位置数
cin >> a >> b >> k;
for(int i = 1; i <= k; ++i)
cin >> bm[i].r >> bm[i].s >> bm[i].p >> bm[i].t;
for(int i = 1; i <= a; ++i)
for(int j = 1; j <= b; ++j)//假设碉堡在(i,j)
{
bool isPos = true;//碉堡是否可能在(i,j)
for(int h = 1; h <= k; ++h)
{
if(bm[h].isCover(i, j) != bm[h].t)//如果这个炸弹对(i,j)的覆盖结果与输入的预设的结果不同
{
isPos = false;
break;
}
}
if(isPos)
ans++;
}
cout << ans;
return 0;
}
边栏推荐
- Zhongqing reading news
- 19. Actual memory management of segment page combination
- PCL realizes frame selection and clipping point cloud
- #systemverilog# 可綜合模型的結構總結
- 软件测试外包到底要不要去?三年真实外包感受告诉你
- Prefix and array series
- 接口自动化测试框架:Pytest+Allure+Excel
- CDN acceleration and cracking anti-theft chain function
- Uni app practical project
- 【Hot100】739. 每日溫度
猜你喜欢
Path analysis model
配置树莓派接入网络
数据仓库建设思维导图
Crawling exercise: Notice of crawling Henan Agricultural University
Interface automation test framework: pytest+allure+excel
1091: two or three things in childhood (multi instance test)
leetcode6109. 知道秘密的人数(中等,周赛)
18.多级页表与快表
指尖上的 NFT|在 G2 上评价 Ambire,有机会获得限量版收藏品
ROS learning_ Basics
随机推荐
19. Actual memory management of segment page combination
Markdown 中设置图片图注
【服务器数据恢复】IBM服务器raid5两块硬盘离线数据恢复案例
网络安全基础介绍
[advanced software testing step 1] basic knowledge of automated testing
Compile, connect -- notes-2
Cif10 actual combat (resnet18)
Entity Developer数据库应用程序的开发
Visitor tweets about how you can layout the metauniverse
The first Baidu push plug-in of dream weaving fully automatic collection Optimization SEO collection module
Applied stochastic process 01: basic concepts of stochastic process
How are the open source Netease cloud music API projects implemented?
【每日一题】729. 我的日程安排表 I
ROS学习_基础
(4) Web security | penetration testing | network security web site source code and related analysis
Oracle database 11gr2 uses TDE transparent data encryption to report an error ora28353. If you run to close the wallet, you will report an error ora28365. If you run to open the wallet, you will repor
C - Inheritance - hidden method
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
Introduction to ros2 installation and basic knowledge
After sharing the clone remote project, NPM install reports an error - CB () never called! This is an error with npm itself.