zoukankan      html  css  js  c++  java
  • 9.3练习题1 城市轰炸 题解

    题目出处:洛谷 P1830

    题目描述

    一个大小为N*M的城市遭到了X次轰炸,每次都炸了一个每条边都与边界平行的矩形。
    在轰炸后,有Y个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几次,最后一次是第几轮。

    输入格式

    第一行,四个整数:N、M、X、Y (1 <= N,M,X,Y<=1000)。
    以下X行,每行四个整数:x1、y1、x2、y2,表示被轰炸的矩形的左上角坐标和右下角坐标(比如1 3 7 10就表示被轰炸的地方是从(1,3)到(7,10)的矩形)。
    再以下Y行,每行两个整数,表示这个关键点的坐标。

    输出格式

    共Y行,
    每行第一个字符为‘Y’或‘N’,表示是否被轰炸,若为Y,在一个空格后为两个整数,表示被炸了几次和最后一次是第几轮。

    样例输入

    10 10 2 3
    1 1 5 5
    5 5 10 10
    3 2
    5 5
    7 1
    

    样例输出

    Y 1 1
    Y 2 2
    N
    

    问题分析

    这道题目是一道简单模拟题。
    我们只需要记录没几次轰炸点的信息,然后对于每一个关键点 (x,y) ,判断有多少个点包含它,以及记录最后一个包含它的轰炸范围信息就可以了。
    实现代码如下:

    #include <bits/stdc++.h>
    using namespace std;
    const int maxn = 110;
    int n, m,   // n和m用于表示矩阵的行数和列数
        p,      // p用于表示轰炸的次数
        q,      // q用于表示关键点的数量
        X1[maxn], Y1[maxn], X2[maxn], Y2[maxn], // (X1[i],Y1[i]),(X2[i],Y2[i]) 表示第i次轰炸的范围
        x, y,   // (x,y)用于表示每一个关键点的坐标
        cnt,    // cnt用于记录该关键点被轰炸的次数
        id;     // id用于表示该关键点最后被轰炸的导弹的编号
    int main() {
        cin >> n >> m >> p >> q;
        for (int i = 1; i <= p; i ++)   // 输入所有的轰炸的范围
            cin >> X1[i] >> Y1[i] >> X2[i] >> Y2[i];
        while (q --) {  // 处理每一个关键点
            cin >> x >> y;  // 输入关键点坐标 (x,y)
            cnt = id = 0;   // 初始化
            for (int i = 1; i <= p; i ++) {
                if (X1[i] <= x && x <= X2[i] && Y1[i] <= y && y <= Y2[i]) { // 如果关键点 (x,y) 在第i次轰炸的范围内
                    cnt ++;         // 计数++
                    id = i;         // 更新最后一次轰炸点的编号
                }
            }
            if (!cnt)   // cnt为0说明没有被轰炸过
                puts("NO");
            else
                cout << "Y " << cnt << " " << id << endl;
        }
        return 0;
    }
    
  • 相关阅读:
    TD课程通的最终版评价
    对学长TD课程通(.apk)的评价
    Angular速查表
    RxJS学习——官网已不推荐使用的方法及替代方案
    Angular学习问题笔记 (2020.6.17)
    技术分享:基本排序算法
    angular4+ionic3 运行报错 Ineffective mark-compacts near heap limit Allocation failed
    Sass混合指令@mixin和@include用法示例
    Git简介、安装和相关配置
    【Angular学习笔记】英雄编辑器
  • 原文地址:https://www.cnblogs.com/zifeiynoip/p/11570712.html
Copyright © 2011-2022 走看看