洛谷C++简单题练习day6—P1830 城市轰炸

day6--P1830 城市轰炸--1.26

习题概述

题目背景

一个大小为 n×m 的城市遭到了 x 次轰炸,每次都炸了一个每条边都与边界平行的矩形。

题目描述

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

输入格式

第一行共四个整数,分别为n,m,x,y。

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

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

输出格式

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

代码部分

#include<bits/stdc++.h>//令人兴奋的万能头
using namespace std;

int n,m,x,y,xx,yy,xxx,yyy,a[101][101],b[101][101]; 
int main()
{
   //n、m、x、y 表示城市行、列、轰炸次数(被炸的矩形的数量)、关键点数量(需要查询的点的数量) 
    cin>>n>>m>>x>>y;
    for(int i=1;i<=x;++i)
    {
	     //输入轰炸的左上角坐标和右下角坐标
    	 cin>>xx>>yy>>xxx>>yyy;
	     //遍历被轰炸矩形的行坐标,从左上角的行坐标 xx 遍历到右下角的行坐标 xxx
         for(int ii=xx;ii<=xxx;++ii)
          //遍历被轰炸矩形的列坐标,从左上角的列坐标 yy 遍历到右下角的列坐标 yyy
    	   for(int jj=yy;jj<=yyy;++jj)
           {
              ++a[ii][jj]; //把此坐标轰炸的次数加1
              b[ii][jj]=i; //把值改成最后轰炸的一轮(记录最后一次轰炸发生在第几轮)
           }
	 }
     for(int i=1;i<=y;++i)//枚举关键点
     {
    	  cin>>xx>>yy;//输入第i个关键点的坐标
    	  if(a[xx][yy]==0)//判断此关键点有没有被炸过
    	     cout<<"N\n";else//没炸过输出N
    	     //否则输出Y、此关键点被轰炸次数和最后轰炸的一轮
    	      cout<<"Y "<<a[xx][yy]<<' '<<b[xx][yy]<<"\n";
      }
      return 0;
}

心得体会

1.下面是该小练习的轰炸情况:

2.下面是标注了具体输入输出语句的运行结果:

3.思路如下:

整体思路:是首先根据输入的轰炸信息,记录每个格子被轰炸的次数和最后一次轰炸的轮数。然后根据查询的关键点,判断其是否受到过轰炸,并输出相应的结果。

具体思路

1)从标准输入读取城市的行数 n、列数 m、轰炸次数 x 和关键点数量 y

2)使用循环,依次处理每次轰炸的矩形区域。

   (1)从标准输入读取被轰炸矩形的左上角坐标 (xx, yy) 和右下角坐标 (xxx, yyy)

   (2)使用嵌套循环遍历被轰炸矩形区域内的每个格子

   (3)在每个格子上,将数组 a 中对应位置的值增加1,表示该位置被轰炸的次数。

   (4)将数组 b 中对应位置的值设置为当前轰炸的轮数。

3)使用循环,依次处理每个关键点的查询。

   (1)如果关键点在数组 a 中对应位置的值不为0,则输出 "Y",后面跟着被轰炸的次数和最后一 次轰炸的轮数。

   (2)检查关键点在数组 a 中对应位置的值,如果为0,则输出 "N",表示该关键点未受到轰炸。     (3)从标准输入读取关键点的坐标 (xx, yy)

4)输出结果到标准输出。

4.拿到题后观察输入输出的示例其实很重要,从中可以梳理出大致的程序结构。

5.附带批注具体的文字的代码

#include<bits/stdc++.h>//令人兴奋的万能头
using namespace std;

int n,m,x,y,xx,yy,xxx,yyy,a[101][101],b[101][101]; 
int main()
{
//n、m、x、y 表示城市行、列、轰炸次数(被炸的矩形的数量)、关键点数量(需要查询的点的数量) 
      cout << "请输入城市的行数、列数、轰炸次数和关键点数量:";
      cin>>n>>m>>x>>y;
        cout << "请依次输入每次轰炸的矩形区域信息!" << endl;
    	for(int i=1;i<=x;++i)
     	{
	     //输入轰炸的左上角坐标和右下角坐标
	     cout << "输入第 " << i << " 次轰炸的左上角坐标和右下角坐标:";
    	 cin>>xx>>yy>>xxx>>yyy;
	     //遍历被轰炸矩形的行坐标,从左上角的行坐标 xx 遍历到右下角的行坐标 xxx
         for(int ii=xx;ii<=xxx;++ii)
          //遍历被轰炸矩形的列坐标,从左上角的列坐标 yy 遍历到右下角的列坐标 yyy
    	   for(int jj=yy;jj<=yyy;++jj)
           {
              ++a[ii][jj]; //把此坐标轰炸的次数加1
              b[ii][jj]=i; //把值改成最后轰炸的一轮(记录最后一次轰炸发生在第几轮)
           }
	    }
	    cout << "请依次输入每个关键点的坐标!" << endl;
        for(int i=1;i<=y;++i)//枚举关键点
        {
          cout << "输入第 " << i << " 个关键点的坐标:";
    	  cin>>xx>>yy;//输入第i个关键点的坐标
    	  if(a[xx][yy]==0)//判断此关键点有没有被炸过
    	     cout<<"N 关键点未受到轰炸";//没炸过输出N
		  else
    	     //否则输出Y、此关键点被轰炸次数和最后轰炸的一轮
    	    cout<<"Y 关键点受到轰炸"<<",被轰炸次数为"<<a[xx][yy]<< ",最后一次轰炸的轮数为 " <<b[xx][yy]<<"\n";
        }
        return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/350610.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如果是全球统一流行前端框架那么这一定是公认的好框架

hello宝子们...我们是艾斯视觉擅长ui设计和前端开发10年经验&#xff01;希望我的分享能帮助到您&#xff01;如需帮助可以评论关注私信我们一起探讨&#xff01;致敬感谢感恩&#xff01; 前端框架层出不穷&#xff0c;各种框架都有自己的特点和优势&#xff0c;但并不是所有的…

JavaWeb基础01-基本技术体系介绍和相关工具的安装

一、JavaWeb 1.概述 Web&#xff1a;全球广域网&#xff0c;也称为万维网(www)&#xff0c;能够通过浏览器访问的网站JavaWeb&#xff1a;是用Java技术来解决相关web互联网领域的技术栈 2.组成 &#xff08;1&#xff09;网页&#xff1a;展示数据&#xff08;前端技术&…

Vue深入学习2—虚拟DOM和Diff算法

1、snabbdom 是什么&#xff1f; snabbdom是“速度"的意思&#xff0c;源码只有200行&#xff0c;使用TS写的&#xff0c;让东西变得模块化 2、snabbdom 的 h 函数如何工作&#xff1f; h函数用于产生虚拟节点&#xff0c;同时也可以嵌套使用&#xff0c;得到虚拟DOM树&am…

行测-言语:2.语句表达

行测-言语&#xff1a;2.语句表达 1. 语句排序题 捆绑就是看两句话是不是讲的同一个内容&#xff0c;相同内容的句子应该相连。 1.1 确定首句 1.1.1 下定义&#xff08;……就是 / 是指&#xff09; A 1.1.2 背景引入&#xff08;随着、近年来、在……大背景 / 环境下&#…

拼图小游戏的界面和菜单的搭建

package Puzzlegame.com.wxj.ui;import javax.swing.*;public class GameJframe extends JFrame { //游戏主界面 public GameJframe(){//初始化界面initJFrame();//初始化菜单initJmenuBar();//让界面显示出来this.setVisible(true); }private void initJmenuBar() {//创建整个…

【动态规划】LeetCode-62. 不同路径

62. 不同路径。 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&am…

Java复习系列之阶段三:框架原理

1. Spring 1.1 核心功能 1. IOC容器 IOC&#xff0c;全称为控制反转&#xff08;Inversion of Control&#xff09;&#xff0c;是一种软件设计原则&#xff0c;用于减少计算机代码之间的耦合度。控制反转的核心思想是将传统程序中对象的创建和绑定由程序代码直接控制转移到…

3 - 主从复制结构|持久化|数据类型

主从复制结构&#xff5c;持久化&#xff5c;数据类型 主从复制 没有高可用功能命令行配置修改配置文件&#xff08;永久有效&#xff0c;重启了redis服务依然有效&#xff09; 配置带验证的主从复制主从从配置哨兵服务&#xff08;可实现高可用&#xff09;持久化RDB文件的使用…

亚马逊测评:卖家如何操作测评,安全高效(自养号测评)

亚马逊测评的作用在于让用户更真实、清晰、快捷地了解产品以及产品的使用方法和体验。通过买家对产品的测评&#xff0c;也可以帮助厂商和卖家优化产品缺陷&#xff0c;提高用户的使用体验。这进而帮助他们获得更好的销量&#xff0c;并更深入地了解市场需求。亚马逊测评在满足…

天正T20V9.0安装教程,附安装包,有不同专业和版本的安装包,轻松搞定安装,无套路获取资源

前言 天正是一款CAD的辅助工具&#xff0c;集成批处理命令、线型、字库、符号库等&#xff0c;会给设计人员带来很多方便&#xff0c;节约时间。天正软件包括暖通、给排水、电气、结构、建筑等&#xff0c;其中&#xff0c;天正建筑已成为建筑设计实际的绘图标准&#xff0c;为…

使用代码取大量2*2像素图片各通道均值,存于Excel文件中。

任务是取下图RGB各个通道的均值及标签&#xff08;R, G&#xff0c;B&#xff0c;Label&#xff09;,其中标签由图片存放的文件夹标识。由于2*2像素图片较多&#xff0c;所以将结果放置于Excel表格中&#xff0c;之后使用SVM对他们进行分类。 from PIL import Image import os …

怎么隐藏磁盘或U盘分区?

隐藏分区需求确实存在&#xff01; 某用户将自己的U盘驱动器分为两个分区&#xff0c;一个是可引导的活动主分区&#xff0c;另一个分区包含服务包和其他用于技术支持的内容&#xff0c;他一直被以下两个问题所困扰&#xff1a; 是否可以隐藏U盘分区&#xff1f; 如果想更改内…

故障注入测试:提高系统可靠性

故障注入测试是一种用于评估系统鲁棒性和容错性的测试方法&#xff0c;它的主要目标是模拟系统中可能发生的故障&#xff0c;并评估系统在面对这些故障时的表现。以下是故障注入测试的主要特点&#xff1a; 模拟真实环境&#xff1a; 故障注入测试努力模拟真实环境中可能发生的…

CHS_07.2.2.4_3+调度算法:多级队列调度算法

CHS_07.2.2.4_3调度算法&#xff1a;多级队列调度算法 多级对列调度算法 接下来 多级对列调度算法 看一个图你就明白了 如果一个系统采用多级对列调度算法 那么 这个系统会按照进程的类型设置多个对列 并且给不同的对列设置不同的优先级 举个例子 分为系统进程 交互式进程以…

Java面试题(6)

28.创建线程池有哪几种方式 newFixedThreadPool(int nThreads) &#xff1a;创建一个固定长度的线程池&#xff0c;如果有线程发生错误而结束&#xff0c; 线程池会补充一个新线程。 newCachedThreadPool() &#xff1a;创建一个可缓存的线程池&#xff0c;会自动回收和创建空…

spring cloud之分布式事务

写在前面 1&#xff1a;分布式事务介绍 参考MySQL之分布式事务 。 2&#xff1a;seata实战 架构图&#xff1a; 可以看到seata在这里作为协调者的角色&#xff0c;协调所有事务的提交以及回滚&#xff0c;其中seata使用MySQL存储每个分支事务的执行状态信息&#xff0c;以…

webassembly003 whisper.cpp的main项目-1

参数设置 /home/pdd/le/whisper.cpp-1.5.0/cmake-build-debug/bin/main options:-h, --help [default] show this help message and exit-t N, --threads N [4 ] number of threads to use during computation-p N, --processors …

使用css将文字在水平线中显示

方法一&#xff1a; 1.效果图 2.html <!-- <div class"line">第三方登录</div> --> 3.css /* 让文字在水平线中显示 */.line {display: flex;flex-direction: row;color: #ccc;font-size: 18px;font-weight: bolder; }.line:before, .line:aft…

Servlet API

Servlet的API就是一组类和方法 其中主要的三个类有 HttpServlet HttpServletRequest HttpServletResponse HttpServlet 这是编写Servlet代码用到的核心类 通过继承这个类 并重新写其中的方法 让tomcat去调用到这里的逻辑 方法名称调用时机init在HttpServlet实例化之后被调用…

攻防世界WEB新手训练区

view_source 此题我愿称之为网安领域的hello world 查看网页源代码的方式一般有—— 右键->查看网页源代码F12->源代码/来源Ctrlu 随后可以再代码第17行处找到flag&#xff0c;至此迈入网安第一步。可喜可贺&#xff0c;可喜可贺... get_post 考察http的两种请求方式&…