SOJ 1045

50题(ACM学习推荐题) POJ推荐50题 1. 标记“难”和“稍难”的题目可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉。 2. 标记为 A and B 的题目是比较相似的题目,建议大家两个一起做,可以对比总结,且二者算作一个题目。 3. 列表中大约有70个题目。大家选做其中的50道,且每类题目有最低数量限制。 4. 这里不少题目在 BUPT ACM FTP 上面都有代码,请大家合理利 阅读详情

1045. Space Management

Constraints

Time Limit: 1 secs, Memory Limit: 32 MB

Description

The new general manager Gill Bates has been to a seminar on time management. Ever since she has been bothering all of her staff to manage their own time. Now she plans to take it one step further: she wants to start managing her space too. And since she has also learned to start small, she wants to start by managing her desk space. Work tends to pile up on her desk, especially since the time management training where she was taught to order all documents in neat piles and organize her work accordingly. She now needs to calculate how much desk space is occupied. For this she comes up with a cunning plan. First, she orders her staff to measure the size and exact location of each document on the desk, in tenths of millimeters accuracy. As Gill is a very tidy person, all her document are completely on her desk, and are all perfectly aligned to the edges of the desk (i.e. the edges of all documents are parallel to an edge of the desk). For each document, the staff writes down the position of the lower left corner of the document and its size. 
What you need to do now is to write a program that, given the input from the staff, calculates the occupied space on the desk. The maximum size of the desk is 2 * 1 meters. There is a maximum of 500 documents on the desk. 

Input

The first line of the input consists of the number N of desks to be considered. Next follows for each desk the number of documents. Then follows for each document a separate line with 4 numbers: the smallest X and Y co-ordinates (i.e. the lower left corner), and the width and height of the document respectively.

Output

The output consists of N lines containing the amount of occupied space on each desk in squared tenths of millimeters.

Sample Input

2
2
0 0 1000 1000
0 0 1000 1000
3 
0 0 2 2 
2 2 2 2 
1 1 2 2

Sample Output

1000000

10

要求桌子被文件覆盖的总面积,最大难点就是处理重叠,如果将桌子和文件化为一维,即桌子是一条长线,而每个文件占用一定的长度,这样来求总占用长度的话就可以将所有文件按占用长度的起始点排序,再设一个变量R来保存之前已计算过文件的最右端位置,这样当我们要计算下一个文件的占用长度时就可以通过比较下个文件的起终点和之前文件的最右端位置来判定它与之前文件的重叠程度,然后就可以很快捷的求出总的占用长度。但当问题推广到二维的时候情况就复杂了许多,所以我们可以将二维化成一维,桌子是1000行2000列,我们可以分行计算,每一行就是一个一维结构,然后对于某一行,我们知道每个文件在这一行所覆盖的长度及起点,然后根据上面的方法就可以求出所有文件在这一行覆盖的长度(这里长度和面积是等价的,因为二维数组中每一格就是一个单位面积),同理可以求出每一行被覆盖的长度,然后进行累加就是整个桌子被覆盖的面积。

#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
struct node{
	int start;//每一行被覆盖的起点 
	int length;//覆盖的长度 
	node(int s,int l)
	{
		start=s;
		length=l;
	}
};
int N,numOfDoc;//N为桌子数,numOfDoc为文件数 
int x,y,width,height;//保存文件的位置 
vector<node> desk[1000];//可以用二维数组来模拟桌子,但用容器数组会更方便一点 
int occupied[1000];//记录桌子每行被占用的面积(2000*1000的桌子,将其看成2000列1000行) 
bool cmp(node A,node B)//比较函数,按每行覆盖的起点排序 
{
	return A.start<B.start;
}
void saveData()//分行存储数据 
{
	for(int i=0;i<numOfDoc;++i)
	{
		cin>>x>>y>>width>>height;
		for(int j=x;j<x+height&&j<1000;++j)//文件覆盖x至x+height-1行,每行覆盖的起点为y,覆盖长度为width 
		{
			desk[j].push_back(node(y,width));
		}
	}
}
int caculate()//分行计算覆盖面积 
{
	memset(occupied,0,sizeof(occupied));
	for(int i=0;i<1000;++i)
	{
		if(desk[i].size())//若这一行有覆盖 
		{
		
			sort(desk[i].begin(),desk[i].end(),cmp);//先将各个覆盖按起始点排序	
			int Max=desk[i][0].start+desk[i][0].length-1; //Max记录当前已计算过的覆盖的最右端 
			occupied[i]+=desk[i][0].length;//第i行的第一个覆盖自然是全部计入 
			for(int j=1;j<desk[i].size();++j)//从第二个覆盖开始分类讨论 
			{
				if(desk[i][j].start>Max) //若这一覆盖左端大于之前所有覆盖的最右端,自然全部计入,并更新新的最右端 
				{
					occupied[i]+=desk[i][j].length;
					Max=desk[i][j].start+desk[i][j].length-1;
				}
				else if(desk[i][j].start+desk[i][j].length-1<=Max) continue;//若这一覆盖的最右端还小于之前覆盖的最右端,自然与之前的覆盖完全重合,所有不用再计算 
				else //若只有部分重叠,则只计算不重叠的部分,并更新最右端 
				{
					occupied[i]+=desk[i][j].start+desk[i][j].length-1-Max;
					Max=desk[i][j].start+desk[i][j].length-1;
				}
			}
			//这样就计算出了桌子某一行被覆盖的面积,直至算出所有行被覆盖的面积 
			
		}
	}
	int ans=0;
	for(int i=0;i<1000;++i)
	{
		ans+=occupied[i];//每一行被覆盖的面积相加即是总覆盖面积 
	}
	return ans;
}
int main()
{
	cin>>N;
	for(int i=0;i<N;++i)
	{
		cin>>numOfDoc;
		for(int j=0;j<1000;++j)
		    desk[j].clear();
		saveData();
		cout<<caculate()<<endl;
	}
}


激光条纹中心提取——Steger 激光条纹中心提取-Steger 好久没有记录了,记录一下今天学习的内容,据说Steger在激光条纹中心提取上神一般的存在。文章和代码都分享给大家了哈,其中有四个文件,3个C++,一个python,python一个抠图文件,3个c++包含背景图+原图, 单张图提取, 多张图提取。 分享代码 #include <opencv2\core.hpp> #include <opencv2\highgui.hpp> #include <opencv2\imgproc.hpp> #i 阅读详情

相关推荐

HSMS/SECS/GEM/GEM300半导体通讯协议介绍

HSMS/SECS/GEM/GEM300半导体通讯协议解决方案介绍 目录 SECS/GEM协议通讯 1 目录 2 1.介绍 3 1.1 产品概述 3 1.1.1 高扩展性 4 1.2 通讯实现 4 1.2.2多主机实现 4 1.3 当前的SEMI标准 5 1.3.1 功能跟友商对比 6 1.4 软件灵活性 7 1.5 无需学习SECS 7 1.6 自定义消息传递 8 1.7 记录收集 8 1.8 SECS Manual文档 8 1.9 产品清单 8 2 产品结构 9 2.1 控制面板 9 2.2 使用环境

semisecs 16万+

离散化【sicily 1045. Space Management】

转载请说明出处:http://blog.youkuaiyun.com/lifajun90/article/details/9076453 在计算机程序设计中的离散化是一种程序设计的技巧,和数学中的离散化有一定的区别。 离散化的基本思想是把无限空间中有限的要素映射到有限的空间中去,同时不改变要素之间的相对关系。 如我有一组实数[1.1, 3.5, 4.4, 100.2, 999999.9, ..., 10

1446

k8s集群部署私有镜像仓库

本文介绍了在Kubernetes集群中部署私有镜像仓库的完整方案。使用registry:2镜像创建Deployment,通过NodePort(30500)暴露服务,并采用hostPath(/data/registry)实现数据持久化。部署过程包括节点标记、YAML配置、资源创建及验证步骤,同时提供了Docker和Containerd两种环境下的详细使用方法,包括配置不信任私有仓库、镜像推送/拉取操作指南。该方案特别适合开发测试环境,为团队提供便捷的本地镜像管理能力。

weixin_42728286的博客 893

各大OJ题目归类

各大OJ题目归类 Posted on 2012 年 8 月 8 日 by admin 要时常听时常想时常进修,才是人生真正的生活生计体式格式。什么事也不抱,什么事也不学的人,没有生活生计的资格。  —————————–最优化题目————————————- ———————-动态规划 SOJ1162 I-Keyboard SOJ2096 Maximum Submatrix

稻草人 1694

逆变器LCL滤波器参数设计(一)

1.基本介绍 并网型逆变器一般是电流源逆变器,滤波器基本用LCL结构。 假设要设计额定功率10KVA的单相逆变器,采用两电平的全桥拓扑,采用SPWM控制,载波频率20KHz,电网等级220V,频率50Hz。 拓扑结构如图所示: 直流输入电压分为上下母线各1/2Vin,半母线电压为380V。 L1采用高频磁芯绕制,称为高频电感;L2用工频电感绕制,称工频电感;C是滤波电容,为高频谐波电流提供通路;Vg为电网电压。 载波调制比为:Mr=220*1.414/380=0.819 2.高频电感量的计算 逆变器可以等

weixin_43549807的博客 5万+

Xilinx FPGA中利用JTAG实现MicroBlaze调试信息输出

本文详细介绍了在Xilinx FPGA开发中,如何利用JTAG接口为MicroBlaze软核处理器实现调试信息输出的完整方案。通过配置调试模块、设置Vitis软件工程以及使用XSCT工具,开发者可以建立一条不依赖外部硬件的可靠调试通道,有效解决早期硬件验证阶段串口不可用的问题,大幅提升调试效率。

weixin_29201859的博客 290

待刷题目分类(一)

各大OJ标题归类 www.MyException.Cn  网友分享于:2013-10-11  浏览:16次 各大OJ题目归类 各大OJ题目归类 Posted on 2012 年 8 月 8 日 by admin —————————–最优化问题————————————- ———————-动态规划 SOJ1162 I-Keyboard SOJ2096 M

keshuqi的博客 1931

cadence17.4和16.6同时安装无法使用的问题

经过对报错的问题分析,发现还是17.4的lic文件和16.6的不一样,16.6的版本总是无法找到自己对应的lic文件。卸载了,重新单独安装16.6,这里就是正确的。包括使用这些工具去修复这些问题,都无法接近。已经放弃了,使用哪个版本就安装 哪个版本。这个也无法解决问题。

D_Katter的博客 2324

2021 年 3 月青少年软编等考 C 语言二级真题解析

2021 年 3 月青少年软编等考 C 语言二级真题解析。

发布少儿编程考级的真题和优秀竞赛题解析,以及一些讲义。 1106

2026年数字IC设计禾赛科技笔试带答案解析

本文介绍了一份数字IC设计工程师笔试的试卷结构和部分题目解析。试卷包含15道单选题(30分)、10道填空题(20分)和5道简答/编程题(50分),总分100分,考试时长120分钟。单选题涉及同步时序电路、Verilog语法、跨时钟域设计、FPGA优化、存储器层次、功耗优化等知识点;填空题考查环形振荡器、工艺参数、时序约束、LUT结构等基础概念。试题重点考察应聘者对数字电路设计核心概念的理解和实际工程应用能力,特别是针对激光雷达芯片设计中的关键技术点进行考核。

Open 124

解析 RABAX during SAPGUI Logon 错误及其解决方案

登录用户关联了初始启动程序,该程序由于未处理的异常导致运行时错误。在 ST22 查看错误的程序名和错误行。修复初始程序代码中的逻辑问题。重新部署修复后的代码。示例代码:防止未处理的异常TRY." 模拟逻辑处理ENDTRY.此代码通过 TRY-CATCH 块捕获潜在错误,避免程序崩溃。是 SAP 系统中常见的运行时错误,其根源可能涉及多个方面,包括用户配置、系统状态、数据库连接和自定义开发等。通过结合 ST22、SM21 等诊断工具,以及完善的代码实践和系统监控,可以有效预防和解决此类问题。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1782

2022 年 12 月青少年软编等考 C 语言二级真题解析

2022 年 12 月青少年软编等考 C 语言二级真题解析。

发布少儿编程考级的真题和优秀竞赛题解析,以及一些讲义。 1105

基于Termux的Android平台OpenClaw部署:移动端AI助理实现

本文介绍了在Android设备上通过Termux部署OpenClaw AI助理的方案。Android设备的便携性、Termux提供的完整Linux环境以及多样化的硬件配置使其成为理想的部署平台。文章详细分析了不同级别Android设备的硬件规格(从入门级到旗舰级),并提供了最低/推荐配置要求。部署步骤包括Termux安装初始化、Python环境配置以及性能优化建议。该方案充分利用Android设备的传感器和电池供电优势,为移动办公、学习等场景提供了低成本、高便携性的AI助理解决方案。

博客 3015

芯片封装形式一二三介绍

芯片的封装大家都算是了解。那么芯片封装具体都有哪些?每种封装有哪些特征,适用什么情况呢?下面我们来简单聊一下。芯片封装是安装半导体集成电路芯片用的外壳,起着安放、固定、密封、保护芯片和增强电热性能的作用,而且还是沟通芯片内部世界与外部电路的桥梁——芯片上的接点用导线连接到封装外壳的引脚上,这些引脚又通过印制板上的导线与其他器件建立连接。最早的芯片封装应该是双列直插封装,即DIP封装。这种封装是插件式,焊接操作很方便,适用于自己手动焊接测试时使用,也适用于一些对空间要求较小的低成本方案里使用。现在产品上使用这

ic2121的博客 7124

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ACM必练50题

POJ推荐50题 1. 标记“难”和“稍难”的题目可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉。 2. 标记为 A and B 的题目是比较相似的题目,建议大家两个一起做,可以对比总结,且二者算作一个题目。 3. 列表中大约有70个题目。大家选做其中的50道,且每类题目有最低数量限制。 4. 这里不少题目在 BUPT ACM FTP 上面都有代码,请大家合理利

一苇以航 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

sicily 1136

<br />题外话:这题做了我好久。。不过也同时把动态和静态的线段树写了一两次。。练了手。。过段时间看完区间加法回来学写二维的,            mark soj 1045<br />思路:一看到RMQ问题心情澎湃激动就想着sparce table能不能套~~算计了一下。。发现ST算法此处貌似不可行。。也就是说我必须去学线段树(interval tree)。。于是看了一些简陋的资料理解了之后就开始写了。。先写了个动态指针的。。很果断MLE了。。于是迅速改静态用数组的,结果持续tle。。<br />我原

Lhfcws博客迁移至cnblogs 721

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

POJ推荐50题

POJ推荐50题 标记“难”和“稍难”的题目可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉。 标记为 A and B 的题目是比较相似的题目,建议大家两个一起做,可以对比总结,且二者算作一个题目。 列表中大约有70个题目。大家选做其中的50道,且每类题目有最低数量限制。 这里不少题目在 BUPT ACM FTP 上面都有代码,请大家合理利用资源。 50个题目要求每个...

zgwzgw的博客 264

POJ推荐50题 1. 标记“难”和“稍难”的题目可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉。 2. 标记为 A and B 的题目是比较相似的题目,建议大家两个一起做,可以对比总结,

POJ推荐50题 1. 标记“难”和“稍难”的题目可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉。 2. 标记为 A and B 的题目是比较相似的题目,建议大家两个一起做,可以对比总结,且二者算作一个题目。 3. 列表中大约有70个题目。大家选做其中的50道,且每类题目有最低数量限制。 4. 这里不少题目在 BUPT ACM FTP 上面都有代码,请大家合理利

huaweitman的专栏 1284

acm 推荐题

POJ推荐50题 1. 标记“难”和“稍难”的题目可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉。 2. 标记为 A and B 的题目是比较相似的题目,建议大家两个一起做,可以对比总结,且二者算作一个题目。 3. 列表中大约有70个题目。大家选做其中的50道,且每类题目有最低数量限制。 4. 这里不少题目在 BUPT ACM FTP 上面都有代码,请大家合理利用

wangzhuo0978的专栏 385

[zz]北邮ACM50题

POJ推荐50题 1.标记“难”和“稍难”的题目可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉。 2.标记为A and B的题目是比较相似的题目,建议大家两个一起做,可以对比总结,且二者算作一个题目。 3.列表中大约有70个题目。大家选做其中的50道,且每类题目有最低数量限制。 4.这里不少题目在BUPT ACM FTP上面都有代码,请大家合理利用资源。 5....

weixin_33751566的博客 111

SOJ 1024

1024. Magic Island Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description There are N cities and N-1 roads in Magic-Island. You can go from one city to any other. One road only

Tsinting的博客 906

SOJ 1021

1021. Couples Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description N couples are standing in a circle, numbered consecutively clockwise from 1 to 2N. Husband and wife do n

Tsinting的博客 768
上一篇: SOJ 1043
下一篇: SOJ 1046
Tsinting
博客等级 码龄10年 3粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值