把房间号映射在一条坐标上,然后排序,最后找从左到右找一次可行的计划,最后找从左到右找一次可行的计划,最后找从左到右找一次可行的计划,最后找从左到右找一次可行的计划,

............

次数*10就是答案

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
struct node
{
int s,e;
};
istream & operator >>(istream &is,node &a)
{
is>>a.s>>a.e;
return is;
}
bool cmp(node a,node b)
{
return a.s!=b.s?a.s<b.s:a.e<b.e;
}
int cg(int x)
{
return x&1?(x+1)>>1:x>>1;
}
int main()
{
// freopen("in","r",stdin);
bool vis[210];
int T,i,j,n,ans;
node box[210];
node p;
cin>>T;
while(T--)
{
cin>>n;
for(i=0;i<n;i++)
{
cin>>box[i];
box[i].s=cg(box[i].s);
box[i].e=cg(box[i].e);
if(box[i].s>box[i].e)
swap(box[i].s,box[i].e);
}
ans=0;
memset(vis,0,sizeof(vis));
sort(box,box+n,cmp);
for(i=0;i<n;i++)
{
if(vis[i])
continue;
ans+=10;
p=box[i];
for(j=i+1;j<n;j++)
{
if(vis[j])
continue;
if(box[j].s>p.e||box[j].e<p.s)
{
vis[j]=1;
p=box[j];
}
}
}
cout<<ans<<endl;
}
return 0;
}

mous ACM (Advanced Computer Maker) Company has rented a floor ofa building whose shape is inthe following figure.


The floor has 200 rooms each on the north side and south side along thecorridor. Recently the Companymade a plan to reform its system. The reform includes moving a lot oftables between rooms. Because thecorridor is narrow and all the tables are big, only one
table can passthrough the corridor. Some plan is neededto make the moving efficient. The manager figured out the followingplan: Moving a table from a room toanother room can be done within 10 minutes. When moving a table fromroomi
to room j, the part of thecorridor between the front of room i
and the front of room jis used. So, during each 10 minutes, severalmoving between two rooms not sharing the same part of the corridor willbe done simultaneously. To make itclear the manager illustrated the possible cases and impossible casesof simultaneous
moving.

  Table moving Reason
Possible ( room 30 to room 50) and (room60 to room 90) no part of corridor is shared
(room 11 to room 12) and (room14 to room 13) no part of corridor is shared
Impossible (room 20 to room 40) and (room31 to room 80) corridor in front of room 31 toroom 40 is shared
(room 1 to room 4) and (room 3to room 6) corridor in front of room 3 isshared
(room 2 to room 8) and (room 7to room 10) corridor in front of room 7 isshared

For each room, at most one table will be either moved in or moved out.Now, the manager seeks out a methodto minimize the time to move all the tables. Your job is to write aprogram to solve the manager's problem.

Input

The input consists of T test cases. The number of test cases (T) is given in the first line of the input file. Eachtest case begins with a line containing an integerN
, 1<=N<=200 , that represents thenumber of tables to move.Each of the followingN
lines contains two positive integers sand t, representing that a table is to move fromroom numbers
to room number t (each room numberappears at most once in theN
lines). From the N+3-rdline, the remaining test cases are listed in the same manner as above.

Output

The output should contain the minimum time in minutes to complete themoving, one per line.

Sample Input

3
4
10 20
30 40
50 60
70 80
2
1 3
2 200
3
10 100
20 80
30 50

Sample Output

10
20
30

uva live 2326 - Moving Tables的更多相关文章

  1. uvalive 2326 - Moving Tables(区间覆盖问题)

    题目连接:2326 - Moving Tables 题目大意:在一个走廊上有400个教室, 先在有一些桌子要移动, 每次移动需要十分钟, 但是不同房间的桌子可以在同一个十分钟内移动,只要走廊没有被占用 ...

  2. UVAlive 2326 Moving Tables(贪心 + 区间问题)

    The famous ACM (Advanced Computer Maker) Company has rented a floor of a building whose shape is in ...

  3. zstu.2512. Moving Tables(贪心)

     Moving Tables Time Limit: 1 Sec  Memory Limit: 64 MB Submit: 1182  Solved: 563 Description The famo ...

  4. Moving Tables(贪心或Dp POJ1083)

    Moving Tables Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 28304   Accepted: 9446 De ...

  5. HDOJ 1050 Moving Tables

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

  6. 1050 Moving Tables

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

  7. Moving Tables

    Moving Tables Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total ...

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

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

  9. HDU1050(Moving Tables:贪心算法)

    解题思路: 这种做法是基于hdu2037的做法上考虑的,找出所有可以同时搬运的桌子,然后就很方便求出最短总时间. 还有一种更简单的做法是直接遍历一遍找出与别的重复次数最多的那片区域,重复次数*10就可 ...

随机推荐

  1. tensorflow之tf.slice()

    转载:https://www.jianshu.com/p/71e6ef6c121b https://www.cnblogs.com/chamie/p/11073363.html def slice(i ...

  2. web前端项目规范

    项目目录规范 . ├─ css ├─ component ├─ img ├─ js ├─ page ├─ test ├─ package.json ├─ README.md css 存放样式类文件,且 ...

  3. pytorch 1 torch_numpy, 对比

    import torch import numpy as np details about math operation in torch can be found in: http://pytorc ...

  4. Python 绘图与可视化 matplotlib 制作Gif动图

    参考链接:https://blog.csdn.net/theonegis/article/details/51037850 官方文档:https://matplotlib.org/3.1.0/api/ ...

  5. 【codeforces 767E】Change-free

    [题目链接]:http://codeforces.com/problemset/problem/767/E [题意] 你有m个1元硬币和无限张100元纸币; 你在第i天,需要花费ci元; 同时在第i天 ...

  6. Jenkins学习总结(4)——持续集成,持续交付,持续部署之间的区别

    经常会听到持续集成,持续交付,持续部署,三者究竟是什么,有何联系和区别呢? 假如把开发工作流程分为以下几个阶段: 编码 -> 构建 -> 集成 -> 测试 -> 交付 -> ...

  7. 2015 Multi-University Training Contest 6 hdu 5358 First One

    First One Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total ...

  8. 洛谷 P1746 离开中山路

    P1746 离开中山路 题目背景 <爱与愁的故事第三弹·shopping>最终章. 题目描述 爱与愁大神买完东西后,打算坐车离开中山路.现在爱与愁大神在x1,y1处,车站在x2,y2处.现 ...

  9. C/C++易错难点笔记01

    疑惑点 C++是一门奇妙的语言.非常多时候你对底层不熟悉,非常难知道某些情况下的结果,以下是我不断积累的疑惑点,这里将其记录下来. 类的转换问题 代码: class A{ public: virtua ...

  10. JStorm中的并行( parallelismction )介绍

    JStorm中的并行( parallelismction )介绍 JStrom中.一个计算任务通过多台机器使得计算分解为多个独立并行执行在集群内执行的任务(tasks).从而得到水平扩展. JStor ...