【菜鸟进阶之路】P1830 轰炸III - 洛谷

一、题目部分

选自洛谷:

P1830 轰炸III

二、解题过程

思路
对于每个关键点,对每次轰炸的范围进行循环读入,若关键点处于轰炸范围内,说明该关键点被轰炸过,轰炸次数+1,并设置整型变量end存储最后一次轰炸的轮次,赋值为循环次数j即可保证轰炸的轮次为最后一次。

提交AC答案

#include<bits/stdc++.h> 
using namespace std;
int n,m,x,y,x1[101],yy[101],x2[101],y2[101],mp[101][101];

struct direction
{
	int dx;
	int dy;
	char flag;
	int cnt;
	int end;
};//关键点 

direction d[102];

int main()
{
	scanf("%d %d %d %d",&n,&m,&x,&y);
	
//	for(int i=1;i<=n;i++)
//		for(int j=1;j<=m;j++)
//			mp[i][j]=1;
	
	for(int i=1;i<=x;i++)
		scanf("%d %d %d %d",&x1[i],&yy[i],&x2[i],&y2[i]);
		
	for(int i=1;i<=y;i++)
		scanf("%d %d",&d[i].dx,&d[i].dy);	
	
	for(int i=1;i<=y;i++)
	{
		d[i].flag='N';
		for(int j=1;j<=x;j++)
		{
			for(int a=x1[j];a<=x2[j];a++)
			{ 
				for(int b=yy[j];b<=y2[j];b++)
				{
					
					if(d[i].dx==a&&d[i].dy==b)
					{
						d[i].flag='Y';
						d[i].cnt+=1;
						d[i].end=j;
					}
					
				}	
			}			
		}

	}
	
	for(int i=1;i<=y;i++)	
	{
		if(d[i].flag=='N')
			cout<<d[i].flag<<endl;
		else
			cout<<d[i].flag<<" "<<d[i].cnt<<" "<<d[i].end<<endl; 
	} 
		
	return 0;   
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值