当前位置: 首页 > news >正文

打卡信奥刷题(3166)用C++实现信奥题 P7865 「EVOI-RD1」无人机航拍

P7865 「EVOI-RD1」无人机航拍

题目背景

T 市举行活动需要拍摄高空俯瞰图,找来了一个无人机机队负责拍摄工作。 一E孤行 是队伍的队长,他根据广场的规模来安排无人机的位置。

题目描述

有一个广场,可以看做是一个n × m n \times mn×m的矩形;一E孤行 一共有s ss架无人机,每架无人机的拍摄范围也可以看做是一个矩形,无人机机队的拍摄范围为所有无人机拍摄范围的并。

一E孤行 负责安排无人机的位置,而总负责人 WuuTue 要验收他的方案。WuuTue 的验收方法是列举出L LL个重要的区域,每个重要区域也是一个矩形。 一E孤行 方案的优秀程度取决于有多少个重要区域完全在无人机机队的拍摄范围中。

因此,对于每一个重要区域, 一E孤行 想知道它是否完全在无人机机队的拍摄范围中。

输入格式

第一行,用空格隔开的两个整数n nnm mm,用来描述广场的大小。

第二行,一个整数s ss,表示无人机队伍中无人机的总数量。

第三行到第s + 2 s+2s+2行,每行四个用空格隔开的整数,a 1 , b 1 , a 2 , b 2 a_1,b_1,a_2,b_2a1,b1,a2,b2,用来描述一架无人机的拍摄范围。其中a 1 , b 1 a_1,b_1a1,b1表示矩形的左下角坐标,a 2 , b 2 a_2,b_2a2,b2表示右上角的坐标。

s + 3 s+3s+3行,一个整数L LL,表示活动总负责人列出的重要区域的数量L LL

最后L LL行,每行四个用空格隔开的整数r 1 , c 1 , r 2 , c 2 r_1,c_1,r_2,c_2r1,c1,r2,c2,用来描述一个重要区域。其中r 1 , c 1 r_1,c_1r1,c1表示矩形区域左下角坐标,r 2 , c 2 r_2,c_2r2,c2表示右上角坐标。

输出格式

输出L LL行,对于每个重要区域,如果完全在机队的拍摄范围内就输出Yes,否则出No。每个答案占一行。

输入输出样例 #1

输入 #1

9 9 3 2 1 4 4 2 5 4 9 5 2 7 6 2 3 3 6 6 5 6 8 8

输出 #1

Yes No

说明/提示

样例说明

如下图所示,区域A , B , C A,B,CA,B,C分别是某某安排的无人机能够覆盖的范围,区域D , E D,ED,E是 WuuTue 要验收时列举的重点区域,区域D DD能够被完全覆盖,区域E EE不能被全部覆盖。

数据规模与约定

本题采用捆绑测试。

对于40 % 40\%40%的数据:1 ≤ n ≤ 1000 1 \le n \le 10001n10001 ≤ s ≤ 100 1 \le s \le 1001s100
对于100 % 100\%100%的数据:

  • 1 ≤ n , m ≤ 3 × 10 3 1 \le n, m \le 3 \times 10^{3}1n,m3×103
  • 1 ≤ s , L ≤ 10 6 1 \le s,L \le 10^61s,L106
  • 1 ≤ x 1 < x 2 ≤ n 1 \le x_1 < x_2 \le n1x1<x2n
  • 1 ≤ r 1 < r 2 ≤ n 1 \le r_1 < r_2 \le n1r1<r2n
  • 1 ≤ y 1 < y 2 ≤ m 1 \le y_1 < y_2 \le m1y1<y2m
  • 1 ≤ c 1 < c 2 ≤ m 1 \le c_1 < c_2 \le m1c1<c2m

C++实现

#include<iostream>#include<algorithm>#defineMAXN3005#defineMAXM3005#defineMAXS1000005usingnamespacestd;intn,m,s,l;intsqu[MAXN][MAXM];// 使用一个矩阵即可intmain(){std::ios::sync_with_stdio(false);cin>>n>>m>>s;for(inti=1;i<=s;i++){inta1,b1,a2,b2;cin>>a1>>b1>>a2>>b2;squ[a1][b1]++;squ[a2+1][b2+1]++;squ[a2+1][b1]--;squ[a1][b2+1]--;}for(inti=1;i<=n;i++){for(intj=1;j<=m;j++){squ[i][j]+=squ[i-1][j]+squ[i][j-1]-squ[i-1][j-1];}}for(inti=1;i<=n;i++){for(intj=1;j<=m;j++){if(squ[i][j])squ[i][j]=1;}}for(inti=1;i<=n;i++){for(intj=1;j<=m;j++){squ[i][j]+=squ[i-1][j]+squ[i][j-1]-squ[i-1][j-1];}}cin>>l;for(inti=1;i<=l;i++){intr1,c1,r2,c2;cin>>r1>>c1>>r2>>c2;intsum=squ[r2][c2]-squ[r1-1][c2]-squ[r2][c1-1]+squ[r1-1][c1-1];if(sum>=(r2-r1+1)*(c2-c1+1))cout<<"Yes"<<endl;// 为了保险,用了大于等于elsecout<<"No"<<endl;}}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

http://www.jsqmd.com/news/701350/

相关文章:

  • 2026Q2单相调压器技术解析:三相隔离变压器/交流稳压器/交流调压器/医用隔离变压器/医疗变压器/医疗设备UPS/选择指南 - 优质品牌商家
  • 海外玩家伪装来源? 怎么用IP归属地识别
  • 5分钟搭建原神私服:KCN-GenshinServer图形化一键启动终极指南
  • 抑郁症 = 焦虑症?
  • 2026西南地区尼龙皮PVC皮带厂家名录及选购参考指南:成都托辊生产厂家、成都输送带厂家、沙石料厂皮带、液压输送机选择指南 - 优质品牌商家
  • Java JVM 垃圾回收调优指南
  • 如何确保多个 goroutine 的执行结果按启动顺序收集
  • 基于MCP协议与NotebookLM构建零幻觉AI编程助手知识库
  • TV 2.0技术解析:家庭娱乐与PC功能的融合方案
  • 2026年热门的验厂咨询/QS工业生产许可证验厂咨询行业公司推荐 - 行业平台推荐
  • 为什么你学 AI 总是学不会?因为你踩了这 3 个坑
  • smol developer:基于LLM的智能代码生成工具,实现从需求到原型的快速开发
  • AI Agent Harness Engineering 做测试:用例生成、回归与缺陷定位
  • 【限时开源】工业级C++ MCP网关核心模块(含动态路由热加载+熔断降级SDK):GitHub Star破3k后首次完整解析
  • 现在不学C++26合约架构,半年后将无法维护下一代嵌入式/金融核心系统?4步构建可审计、可降级、可形式化验证的合约架构
  • Cursor Free VIP:3步解锁AI编程助手Pro功能的终极解决方案
  • Spyder 6.0:科学Python开发的7大效率革命
  • 可控硅(晶闸管)基础知识及应用电路Multisim电路仿真
  • Windows Media Audio技术解析与应用实践
  • 从零构建操作系统内核:引导、内存管理与多任务实现
  • 告别手动字幕:OpenLRC如何用AI解放你的创作时间
  • 解决 Leaflet 地图在移动端溢出导致导航栏不可见的问题
  • NVIDIA DGX Spark:本地化AI开发的高性能解决方案
  • Kubernetes日志调试进入“所见即所得”时代——VSCode 2026容器日志实时查看技术白皮书(内部泄露版)
  • 检测三位随机数中重复数字的Python实现方法
  • Agent 一接 Webhook 回调就开始状态穿越:从 Outbox 事务到事件去重窗口的工程实战
  • Spring Data 2027 动态查询深度解析
  • 2026年口碑好的135平方装修年度精选公司 - 品牌宣传支持者
  • 2026:PVC造粒机、TPO片材挤出机、TPO造粒机、低烟无卤电缆料造粒机、水环造粒机、硅烷交联电缆料造粒机选择指南 - 优质品牌商家
  • Fillinger智能填充:Adobe Illustrator图形自动分布的革命性解决方案