news 2026/4/26 3:55:57

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
打卡信奥刷题(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考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 3:54:44

ARM Cortex-A9 NEON架构与优化实战指南

1. ARM Cortex-A9 NEON媒体处理引擎架构解析作为ARMv7架构中的重要组成部分&#xff0c;Cortex-A9 NEON媒体处理引擎(MPE)代表了移动处理器SIMD技术的重大突破。我在实际开发中发现&#xff0c;理解其底层架构对于充分发挥硬件性能至关重要。1.1 NEON技术核心设计理念NEON本质上…

作者头像 李华
网站建设 2026/4/26 3:51:35

研究技术中的研究方法实验设计与数据分析

研究技术中的研究方法、实验设计与数据分析是科学研究的重要环节&#xff0c;它们直接影响研究结果的可靠性和有效性。无论是自然科学、工程技术还是社会科学&#xff0c;合理的研究方法、严谨的实验设计以及科学的数据分析都是确保研究质量的关键。本文将围绕这三个核心环节展…

作者头像 李华
网站建设 2026/4/26 3:49:33

Jenkins Docker代理实战:镜像选型、集成配置与性能调优指南

1. 项目概述&#xff1a;为什么我们需要 Jenkins Docker 代理 如果你和我一样&#xff0c;长期在 CI/CD 流水线里摸爬滚打&#xff0c;那你一定对 Jenkins 的“代理”这个概念又爱又恨。爱的是&#xff0c;它能把构建任务分发到不同的机器上&#xff0c;实现并行和隔离&#xf…

作者头像 李华
网站建设 2026/4/26 3:45:35

Tarsier:为Web自动化智能体提供结构化视觉感知的开源工具

1. 项目概述&#xff1a;Tarsier&#xff0c;为Web智能体装上“眼睛” 如果你最近在尝试用大语言模型&#xff08;LLM&#xff09;来自动化网页操作&#xff0c;比如让AI帮你填表单、点按钮、查信息&#xff0c;那你大概率会卡在第一步&#xff1a; 怎么让这个“纯文本”的AI…

作者头像 李华
网站建设 2026/4/26 3:37:52

VSCode 2026嵌入式调试适配终极验证报告:实测23款主流MCU + 8种RTOS + 4类自定义Bootloader——仅3个已知缺陷(附临时补丁SHA256校验码)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;VSCode 2026嵌入式调试适配终极验证报告概述 VSCode 2026 版本在嵌入式开发支持方面实现了重大架构升级&#xff0c;核心变化包括原生集成 Cortex-Debug v1.5、RISC-V OpenOCD 2026.03 协议栈、以及对 …

作者头像 李华