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

CSP/信奥赛C++刷题训练:经典差分例题(3):洛谷P5542 :[USACO19FEB] Painting The Barn S

CSP/信奥赛C++刷题训练:经典差分例题(3):洛谷P5542 :[USACO19FEB] Painting The Barn S

在这里插入图片描述

题目描述

农夫约翰不擅长多任务处理。他经常分心,很难完成长的项目。目前,他正试图在谷仓的一侧上漆,但他一直在画小矩形区域,然后由于照料奶牛的需要而偏离了方向,使得谷仓的某些部分上漆的涂料比其他部分多。

我们可以将谷仓的一侧描述为一个二维 x − y x-y xy 平面,农夫约翰在该平面上绘制 n n n 个矩形,每个矩形的边都与坐标轴平行,每个矩形由谷仓的左下角和右上角点的坐标描述。

农夫约翰想在谷仓上涂几层油漆,这样在不久的将来就不需要再重新粉刷了。但是,他不想浪费时间涂太多的油漆。结果表明, K K K 涂层是最佳用量。请在他画完所有的长方形后,帮他确定谷仓有多少面积被 K K K 层油漆覆盖。

输入格式

输入的第一行包含 n n n K K K

其余 n n n 行中的每一行包含四个整数 x 1 x1 x1 y 1 y1 y1 x 2 x2 x2 y 2 y2 y2,描述正在绘制的矩形区域,左下角 ( x 1 , y 1 ) (x1,y1) (x1,y1) 和右上角 ( x 2 , y 2 ) (x2,y2) (x2,y2)。所有 x x x y y y 值都在 0 0 0 1000 1000 1000 范围内,并且所有矩形都有正面积。

输出格式

请输出谷仓被 K K K 层油漆覆盖的区域。

样例 #1

样例输入 #1

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

样例输出 #1

8

提示

1 ≤ K ≤ n ≤ 1 0 5 1\le K\le n\le 10^5 1Kn105

USACO 2019 二月月赛银牌组第二题。

使用差分解题

#include<bits/stdc++.h>
using namespace std;
//差分:c[i][j]=a[i][j]-a[i][j-1] 
int n,k,a1,b1,a2,b2,cnt=0; 
int a[1010][1010];//标记数组
int c[1010][1010];//差分数组 
int main(){
	cin>>n>>k;
	while(n--){
		cin>>a1>>b1>>a2>>b2;//左下(a1,b1),右上(a2,b2) 
		for(int i=a1;i<a2;i++){//右上不标记
			c[i][b1]++;
			c[i][b2]--;
		}
	}
	for(int i=0;i<=1000;i++){
		for(int j=0;j<=1000;j++){
			a[i][j]=c[i][j]+a[i][j-1];
		}	
	} 
	for(int i=0;i<=1000;i++){
		for(int j=0;j<=1000;j++){
			if(a[i][j]==k) cnt++; 
		}
	} 
	cout<<cnt;
	return 0;
}

文末彩蛋:

点击王老师青少年编程主页有更多精彩内容


http://www.kler.cn/a/375618.html

相关文章:

  • 通信协议之数据帧常用校验方法(奇偶校验、CRC校验)
  • 【记录52】el-table-column 添加fixed属性 滚动条无法滑动
  • Java 8 Optional类
  • 基于.Net Core+Vue的文件加密系统
  • C语言进阶习题【1】指针和数组(3)——一维指针指向字符数组首元素地址
  • 测试工程师的linux 命令学习(持续更新中)
  • fastboot相关的命令大全
  • 计算机后台服务-更新下载,重启————未来之窗行业应用跨平台架构
  • Notepad++检索包含多个关键字的行
  • 【django】RESTful API 设计指南
  • Hadoop-006-集群运维常见报错及解决方案
  • NGPT:在超球面上进行表示学习的归一化 Transformer
  • 工程师 - 什么是数据归并
  • 【新闻转载】“假冒 LockBit”来袭:勒索软件借助 AWS S3 偷窃数据,威胁升级
  • 用Python脚本执行安卓打包任务
  • 用QWebSocketServer写websocket服务端
  • 华为自研仓颉编程语言官网上线 首个公测版本开放下载
  • 基于GA遗传算法的悬索桥静载试验车辆最优布载matlab仿真
  • Minio 之 内网项目托管Unity Android包体
  • 个人开发三步走
  • wx.setNavigationBarColor动态设置导航栏颜色无效(亲测有效)
  • Hailo-8/8L系列汇总
  • 小白Git操作简洁步骤
  • PostgreSQL 增量备份:保护你的数据资产
  • ARKit读取LiDAR点云
  • qt QGroupBox详解