题目链接

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的更多相关文章

  1. 【POJ1083】 Moving Tables (并行的搬运)

    BUPT2017 wintertraining(15) #6E 题意 房间1和2,3和4,...,399和400共用一节走廊,有q次从房间li到ri的搬运桌子,一次搬运10分钟.两个搬运如果走廊有重叠 ...

  2. 【贪心】Moving Tables POJ 1083

    题目链接:http://poj.org/problem?id=1083 题目大意:走廊上的房间如下图设置,现在有n个移动桌子的任务,把桌子从xi移动到yi(整个过程中会占用xi到yi房间之间的走廊), ...

  3. 【01】markdown语法

    [02]段落和换行 一个 Markdown 段落是由一个或多个连续的文本行组成,它的前后要有一个以上的空行(空行的定义是显示上看起来像是空的,便会被视为空行.比方说,若某一行只包含空格和制表符,则该行 ...

  4. 【LeetCode】队列 queue(共8题)

    [346]Moving Average from Data Stream [353]Design Snake Game [363]Max Sum of Rectangle No Larger Than ...

  5. 【LeetCode】设计题 design(共38题)

    链接:https://leetcode.com/tag/design/ [146]LRU Cache [155]Min Stack [170]Two Sum III - Data structure ...

  6. hdoj 1050 Moving Tables【贪心区间覆盖】

    Moving Tables Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  7. 【整理】mysql中information_schema.tables字段说明

    [整理]mysql中information_schema.tables字段说明 2016-05-04 16:47:50|  分类: 默认分类|举报|字号 订阅     下载LOFTER我的照片书  | ...

  8. 【77.78%】【codeforces 625C】K-special Tables

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  9. 【Codeforces Round #423 (Div. 2) A】Restaurant Tables

    [Link]:http://codeforces.com/contest/828/problem/A [Description] 有n个组按照时间顺序来餐馆; 每个组由一个人或两个人组成; 每当有一个 ...

随机推荐

  1. Javascript Array和String的互转换

    Array类可以如下定义: var aValues = new Array(); 如果预先知道数组的长度,可以用参数传递长度 var aValues = new Array(20); -------- ...

  2. XML中的DTD语法

    DTD(Document Type Definition),全称为文档类型定义. 文件清单:book.xml <?xml version="1.0" ?> <!D ...

  3. thrift的lua

    thrift的lua实现 最近要进行系统升级,后台的数据是根据城市区分的.担心新系统的稳定性及新数据的准确性,计划部分城市采用新接口.接口的入参里没有城市信息,只有经纬度坐标,需要调用一个thrift ...

  4. BZOJ1415: [Noi2005]聪聪和可可 最短路 期望概率dp

    首先这道题让我回忆了一下最短路算法,所以我在此做一个总结: 带权: Floyed:O(n3) SPFA:O(n+m),这是平均复杂度实际上为O(玄学) Dijkstra:O(n+2m),堆优化以后 因 ...

  5. POJ2912:Rochambeau(带权并查集)

    Rochambeau Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 5208   Accepted: 1778 题目链接:h ...

  6. 设置edittext的样式

    1.在res->drawable编写 <?xml version="1.0" encoding="utf-8"?> <shape xml ...

  7. codeforces 719C. Efim and Strange Grade

    C. Efim and Strange Grade time limit per test 1 second memory limit per test 256 megabytes input sta ...

  8. 7月18号day10总结

    今天学习过程和小结 今天学会了用git从GitHub上克隆代码然后打包成jar包,然后在idea程序中引入这个jar包的依赖来使用jar包中的程序. 通过这个中的网址: 在Git Bash Here中 ...

  9. [05]Git查看、删除、重命名远程分支和tag

    Git查看.删除.重命名远程分支和tag 2015-06-15:加入姊妹篇: 2013-11-06:加入重命名远程分支的内容: 2013-01-09:加入删除远程tag的内容. 姊妹篇:使用Git.G ...

  10. HTTP缓存原理

    http的缓存分为强制缓存和对比缓存,两者的区别在于,强制缓存只要设置的时间不过期,就可以直接拿去用,而不用向服务器再一次发送请求.而对比缓存不管缓存是否有效,都需要向服务器发送请求. 其过程如下: ...