【hdoj_1050】Moving Tables
题目链接
http://acm.hdu.edu.cn/showproblem.php?pid=1050
题意为:
为了叙述方便,把一个房间里面的桌子移动到另一个房间称为一个移动,给出若干个要求完成的移动,任意两个移动仅在移动路线不相交的情况下可以同时进行,求出移动所需花费的最小次数(时间).
注意:
出现有"对门"的路线,不能同时移动,例如,[2,4]和[3,5]不能同时进行,因为3和4对门.
路线重叠:
凡是路线重叠的两个移动,不能同时进行.路线重叠例如,[1,4]和[2,5]路线重叠,[2,4]和[3,5]路线重叠,[4,2]和[5,3]路线重叠.根据题意,可以看出,移动的顺序对于路线是否重叠没有影响.另外,对门的位置可以看做一个位置.
思路:将每一条移动路线看做一条直线,假设所有的移动同时进行,则会有多个地方出现直线重叠的情况,求出重叠的最大层数(有多少条直线在同一处重叠最多)
C++代码如下
#include<iostream>
#include<algorithm>
using namespace std; int main()
{
int T;
cin >> T;//测试次数
int start,end;//每次移动的起始位置
while(T--)
{
int n;//每次测试中,移动的个数
cin >> n;
int a[200] = {0};//记录每个位置的重叠的次数,开始都为0.
//一共有400个房间,由于对门位置看做一个位置,所以共有200个位置.
for(int i=0;i<n;i++)//针对每个移动而言.
{
cin >> start >> end; start = (start+1)/2;
end = (end+1)/2;//这样处理之后,对门位置变为一个位置.可以把两个 + 同时改为 - 也正确. int max = std::max(start,end);//为了下面循环而作的处理
int min = std::min(start,end);
for(int k=min;k<=max;k++)//看看这个移动为200个位置上的重叠次数的贡献是多大.
a[k] ++;
}
int max = -1;
for(int i=0;i<200;i++)//找出数组a中最大值
{
if(a[i]>max)
{
max = a[i];
}
}
cout << 10*max << endl;
} return 0;
}
参考:
http://www.cnblogs.com/ahu-shu/p/3551829.html
【hdoj_1050】Moving Tables的更多相关文章
- 【POJ1083】 Moving Tables (并行的搬运)
BUPT2017 wintertraining(15) #6E 题意 房间1和2,3和4,...,399和400共用一节走廊,有q次从房间li到ri的搬运桌子,一次搬运10分钟.两个搬运如果走廊有重叠 ...
- 【贪心】Moving Tables POJ 1083
题目链接:http://poj.org/problem?id=1083 题目大意:走廊上的房间如下图设置,现在有n个移动桌子的任务,把桌子从xi移动到yi(整个过程中会占用xi到yi房间之间的走廊), ...
- 【01】markdown语法
[02]段落和换行 一个 Markdown 段落是由一个或多个连续的文本行组成,它的前后要有一个以上的空行(空行的定义是显示上看起来像是空的,便会被视为空行.比方说,若某一行只包含空格和制表符,则该行 ...
- 【LeetCode】队列 queue(共8题)
[346]Moving Average from Data Stream [353]Design Snake Game [363]Max Sum of Rectangle No Larger Than ...
- 【LeetCode】设计题 design(共38题)
链接:https://leetcode.com/tag/design/ [146]LRU Cache [155]Min Stack [170]Two Sum III - Data structure ...
- hdoj 1050 Moving Tables【贪心区间覆盖】
Moving Tables Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- 【整理】mysql中information_schema.tables字段说明
[整理]mysql中information_schema.tables字段说明 2016-05-04 16:47:50| 分类: 默认分类|举报|字号 订阅 下载LOFTER我的照片书 | ...
- 【77.78%】【codeforces 625C】K-special Tables
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- 【Codeforces Round #423 (Div. 2) A】Restaurant Tables
[Link]:http://codeforces.com/contest/828/problem/A [Description] 有n个组按照时间顺序来餐馆; 每个组由一个人或两个人组成; 每当有一个 ...
随机推荐
- linux文件系统(ext2)
一个磁盘可以划分成多个分区,每个分区必须先用格式化工具(例如某种mkfs命令)格式化成某种格式的文件系统,然后才能存储文件,格式化的过程会在磁盘上写一些管理存储布局的信息.下图是一个磁盘分区格式化成e ...
- 关于org.springframework.web.filter.CharacterEncodingFilter的学习
介绍 org.springframework.web.filter.CharacterEncodingFilter 这是一个过滤器,是Spring在web请求中定义request和response的编 ...
- Xampp+Openfire+Spark的简单使用
Openfire与Spark的简单实用 1.安装Openfire 百度云 提取码:uu11 2.查找路径 /usr/local/openfire 这时候需要将openfire的文件属性都设置为 可读可 ...
- 【SSH】——Hibernate实现简单的自动建表
[与ORM] Object Relational Mapping,对象关系映射,将对象和关系联系了起来.面向对象是从耦合.聚合.封装等的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论 ...
- Github & DMCA Takedown Policy
Github & DMCA Takedown Policy Digital Millennium Copyright Act 数字千年版权法案 https://help.github.com/ ...
- 制作用于日期时间型字段的DELPHI数据感知控件
用DELPHI开发C/S应用方便而快速,因为它拥有大量易于使用的数据访问和数据感知控件.然而万事总是难以完美,DELPHI的DBEdit控件用于输入日期时间型字段却很不方便,为了改善这一缺点,笔者开发 ...
- P1419 寻找段落
题目描述 给定一个长度为n的序列a_i,定义a[i]为第i个元素的价值.现在需要找出序列中最有价值的“段落”.段落的定义是长度在[S,T]之间的连续序列.最有价值段落是指平均值最大的段落, 段落的平均 ...
- [bzoj3886] [USACO15JAN]电影移动Moovie Mooving
题目链接 状压\(dp\). 注意到\(n\leq 20\)且每个只能用一次,所以很显然可以压缩每部电影看过没,记\(f[sta]\)为状态为\(sta\)时最多可以看多久. 转移时先枚举状态,然后枚 ...
- 判断当前系统当前浏览器是否安装启用 Adobe Flash Player,检查在chrome中的状态
一.判断当前所在系统 let sUserAgent = navigator.userAgent;let isWin = (navigator.platform == "Win32" ...
- Avito Cool Challenge 2018 A. B题解
A. Definite Game 题目链接:https://codeforces.com/contest/1081/problem/A 题意: 给出一个数v,然后让你可以重复多次减去一个数d,满足v% ...