• P1830 轰炸III


    P1830 轰炸III

      • 84通过
      • 145提交
    • 题目提供者wanglichao1121
    • 标签模拟矩阵洛谷原创
    • 难度普及/提高-

    提交该题 讨论 题解 记录

    最新讨论

    • 暂时没有讨论

    题目背景

    一个大小为N*M的城市遭到了X次轰炸,每次都炸了一个每条边都与边界平行的矩形。

    题目描述

    在轰炸后,有Y个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几次,最后一次是第几轮。

    输入输出格式

    输入格式:

    第一行,四个整数:n、m、x、y。

    以下x行,每行四个整数:x1、y1、x2、y2,表示被轰炸的矩形的左上角坐标和右下角坐标(比如1 3 7 10就表示被轰炸的地方是从(1,3)到(7,10)的矩形)。

    再以下y行,每行两个整数,表示这个关键点的坐标。

    输出格式:

    共y行,

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

    输入输出样例

    输入样例#1:
    10 10 2 3
    1 1 5 5
    5 5 10 10
    3 2
    5 5
    7 1
    
    输出样例#1:
    Y 1 1
    Y 2 2
    N
    

    说明

    数据很弱!!!直接模拟!!!!

    1<=N,M<=100

    题解:

    模拟水题。

    AC代码:

    #include<bits/stdc++.h>
    using namespace std;
    const int N=110;
    int n,m,p,q,vis[N][N],mark[N][N]; 
    int main(){
        scanf("%d%d%d%d",&n,&m,&p,&q);
        for(int i=1,x1,y1,x2,y2;i<=p;i++){
            scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
            for(int j=x1;j<=x2;j++){
                for(int k=y1;k<=y2;k++){
                    vis[j][k]++;
                    mark[j][k]=i;
                }
            }
        }
        for(int i=1,x1,y1;i<=q;i++){
            scanf("%d%d",&x1,&y1);
            if(!vis[x1][y1]) puts("N");
            else printf("Y %d %d
    ",vis[x1][y1],mark[x1][y1]);
        }
        return 0;
    }
  • 相关阅读:
    04-增删改查
    03-编写dao实现类方式
    02-基于注解的入门案例
    .net core api 图片上传与加载
    笔记一、数据库初始化 约定
    .net core MVC中级教程(四)
    .net core MVC中级教程(三)
    Windows 盘符映射
    c# 队列和堆栈
    isValidNode
  • 原文地址:https://www.cnblogs.com/shenben/p/5861194.html
Copyright © 2020-2023  润新知