news 2026/4/15 9:11:41

USACO历年青铜组真题解析 | 2018年1月Blocked Billboard II

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
USACO历年青铜组真题解析 | 2018年1月Blocked Billboard II

​欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总贴:USACO历年青铜组真题解析 | 汇总-CSDN博客


【题目来源】

洛谷:[P1696 USACO18JAN] Blocked Billboard II B - 洛谷 (luogu.com.cn)

【题目描述】

奶牛Bassie想要覆盖一大块广告牌,她在之前已经覆盖了一小部分广告牌(但覆盖的这块面积不一定在广告牌上)

现在她要取一块足够大的布来将剩下的部分覆盖,问至少要多大的矩形的布才能覆盖剩下的广告牌。

【输入】

输入共两行。

第一行四个整数,l 1 l_1l1,****r 1 r_1r1,****l 2 l_2l2,****r 2 r_2r2,描述广告牌左下和右上两个坐标**( l 1 , r 1 ) (l_1,r_1)(l1,r1)( l 2 , r 2 ) (l_2,r_2)(l2,r2)**。

第二行四个整数,x 1 , y 1 , x 2 , y 2 x_1,y_1,x_2,y_2x1,y1,x2,y2,描述覆盖的位置的左下和右上两个坐标**( x 1 , y 1 ) (x_1,y_1)(x1,y1)( x 2 , y 2 ) (x_2,y_2)(x2,y2)**。

所有数值都在**− 1000 ∼ 1000 -1000\sim 100010001000**范围内。

【输出】

一行一个整数,表示需要的最小的矩形的布。

【输入样例】

2 1 7 4 5 -1 10 3

【输出样例】

15

【算法标签】

《洛谷 P1696 Blocked Billboard II》 #USACO# #O2优化# #2018#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;inta[5],b[5];// 存储两个矩形的坐标:a[广告牌], b[覆盖物]intans=0,ans2=0;// ans: 未被覆盖的面积, ans2: 被覆盖的面积intx[5],y[5];// 存储所有x坐标和y坐标(用于网格划分)// 矩形的四个顶点坐标intx11,x12,x21,x22;// 广告牌和覆盖物的x坐标inty11,y12,y21,y22;// 广告牌和覆盖物的y坐标ifstreamfilein("billboard.in");ofstreamfileout("billboard.out");/** * 判断网格单元是否在矩形内部 * @param i x方向网格索引 * @param j y方向网格索引 * @param k 矩形的坐标数组 * @return 如果网格单元完全在矩形内返回true,否则false */boolin(inti,intj,intk[]){// 检查网格单元是否完全包含在矩形内if(x[i]>=k[1]&&x[i+1]<=k[3]&&y[j]>=k[2]&&y[j+1]<=k[4]){returntrue;}returnfalse;}intmain(){// 输入广告牌的坐标(左下角和右上角)for(inti=1;i<=4;i++){filein>>a[i];}x11=a[1];// 广告牌左下角xx12=a[3];// 广告牌右上角xy11=a[2];// 广告牌左下角yy12=a[4];// 广告牌右上角y// 输入覆盖物的坐标(左下角和右上角)for(inti=1;i<=4;i++){filein>>b[i];}x21=b[1];// 覆盖物左下角xx22=b[3];// 覆盖物右上角xy21=b[2];// 覆盖物左下角yy22=b[4];// 覆盖物右上角y// 收集所有x坐标和y坐标x[1]=a[1];// 广告牌左边界x[2]=a[3];// 广告牌右边界x[3]=b[1];// 覆盖物左边界x[4]=b[3];// 覆盖物右边界y[1]=a[2];// 广告牌下边界y[2]=a[4];// 广告牌上边界y[3]=b[2];// 覆盖物下边界y[4]=b[4];// 覆盖物上边界// 对坐标进行排序,用于网格划分sort(x+1,x+4+1);sort(y+1,y+4+1);// 特殊情况处理:覆盖物完全包含广告牌或广告牌完全包含覆盖物if((y22>=y12&&y11>=y21&&x12>=x22&&x21>=x11)||(y12>=y22&&y21>=y11&&x22>=x12&&x11>=x21)){// 输出广告牌的面积(完全被覆盖或完全覆盖)fileout<<(y12-y11)*(x12-x11)<<endl;return0;}// 遍历所有网格单元(3x3网格)for(inti=1;i<=3;i++){for(intj=1;j<=3;j++){// 检查网格单元是否在广告牌内但不在覆盖物内if(in(i,j,a)&&!in(i,j,b)){// 计算未被覆盖的网格单元面积并累加ans+=(y[j+1]-y[j])*(x[i+1]-x[i]);}// 检查网格单元是否同时在广告牌和覆盖物内if(in(i,j,a)&&in(i,j,b)){// 计算被覆盖的网格单元面积并累加ans2+=(y[j+1]-y[j])*(x[i+1]-x[i]);}}}// 特殊情况:部分覆盖且覆盖区域不规则if(ans2%(y12-y11)!=0&&ans2%(x12-x11)!=0){// 使用整个广告牌的面积作为结果ans=(y12-y11)*(x12-x11);}// 输出未被覆盖的面积fileout<<ans<<endl;return0;}

【运行结果】

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

不用 SAP GUI 也能把 ABAP Cloud 文本翻译搞定:Fiori Maintain Translations + XLIFF 全流程实战

在很多传统 ABAP 项目里,翻译几乎等同于打开 SE63:消息类、程序文本元素、类的 text pool,配合一点点术语表,就能把多语言交付跑通。可一旦你把开发重心迁移到 ABAP Cloud(包含 SAP BTP 上的 ABAP environment,以及越来越多基于 Fiori 的开发体验),会立刻遇到一个现实:…

作者头像 李华
网站建设 2026/4/14 16:37:38

ERCF v2:重新定义3D打印多材料自动化的开源奇迹

ERCF v2&#xff1a;重新定义3D打印多材料自动化的开源奇迹 【免费下载链接】ERCF_v2 Community designed ERCF v2 项目地址: https://gitcode.com/gh_mirrors/er/ERCF_v2 你是否曾为3D打印中频繁更换材料而烦恼&#xff1f;当色彩丰富的打印作品需要多种材料时&#x…

作者头像 李华
网站建设 2026/4/15 7:19:31

ResNet18对抗样本防御:云端GPU测试模型鲁棒性

ResNet18对抗样本防御&#xff1a;云端GPU测试模型鲁棒性 引言 在人工智能安全领域&#xff0c;对抗样本攻击是一个不容忽视的威胁。想象一下&#xff0c;你训练了一个能准确识别猫狗的AI模型&#xff0c;但攻击者只需对图片做微小改动&#xff08;人眼几乎无法察觉&#xff…

作者头像 李华
网站建设 2026/4/15 7:18:43

ResNet18部署革命:2024年最佳入门方案实测

ResNet18部署革命&#xff1a;2024年最佳入门方案实测 引言&#xff1a;为什么选择ResNet18作为入门首选&#xff1f; ResNet18是计算机视觉领域的"经典教材"&#xff0c;就像学英语必背的3000基础词汇一样。这个由微软研究院在2015年提出的卷积神经网络&#xff0…

作者头像 李华
网站建设 2026/4/4 13:25:58

在 SAP BTP ABAP Environment 中使用 Business Configuration:用 Fiori 应用打通配置维护、Excel 批量导入与 gCTS Git 化运输

在很多人印象里,Customizing 是一件很 SAP GUI 的事情:进 SM30 维护视图,保存时系统弹出运输请求对话框,把改动记录进某个 Customizing Request,再沿着 DEV → QAS → PRD 的系统链路稳稳地走完。这个模式的本质,是把配置变更纳入一条可审计、可回滚、可跨系统复制的治理…

作者头像 李华
网站建设 2026/4/15 8:56:21

Readest智能笔记完全指南:提升阅读效率的知识管理神器

Readest智能笔记完全指南&#xff1a;提升阅读效率的知识管理神器 【免费下载链接】readest Readest is a modern, feature-rich ebook reader designed for avid readers offering seamless cross-platform access, powerful tools, and an intuitive interface to elevate yo…

作者头像 李华