uva live 2326 - Moving Tables
把房间号映射在一条坐标上,然后排序,最后找从左到右找一次可行的计划,最后找从左到右找一次可行的计划,最后找从左到右找一次可行的计划,最后找从左到右找一次可行的计划,
............
次数*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的更多相关文章
- uvalive 2326 - Moving Tables(区间覆盖问题)
题目连接:2326 - Moving Tables 题目大意:在一个走廊上有400个教室, 先在有一些桌子要移动, 每次移动需要十分钟, 但是不同房间的桌子可以在同一个十分钟内移动,只要走廊没有被占用 ...
- UVAlive 2326 Moving Tables(贪心 + 区间问题)
The famous ACM (Advanced Computer Maker) Company has rented a floor of a building whose shape is in ...
- zstu.2512. Moving Tables(贪心)
Moving Tables Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1182 Solved: 563 Description The famo ...
- Moving Tables(贪心或Dp POJ1083)
Moving Tables Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 28304 Accepted: 9446 De ...
- HDOJ 1050 Moving Tables
Moving Tables Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- 1050 Moving Tables
Moving Tables Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- Moving Tables
Moving Tables Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total ...
- hdoj 1050 Moving Tables【贪心区间覆盖】
Moving Tables Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- HDU1050(Moving Tables:贪心算法)
解题思路: 这种做法是基于hdu2037的做法上考虑的,找出所有可以同时搬运的桌子,然后就很方便求出最短总时间. 还有一种更简单的做法是直接遍历一遍找出与别的重复次数最多的那片区域,重复次数*10就可 ...
随机推荐
- Ansible学习记录四:单命令测试
0.Ansible的group支持all.通配符(*).IP地址 1.查看Ansible的版本 $ ansbile --version [root@test ~]# ansible --versi ...
- Consider defining a bean of type 'XX.XX.XX.XX.mapper.XXMapper' in your configuration.
今天构建一个springboot 项目,采用mybatis+mysql 然后就出现了这种错误....浪费我半天时间 Description: Field loginLogMapper in com.g ...
- AMD包下载及使用
AMD下载 下载地址 选择837.zip下载即可,将837.zib考入相应的文件夹下,并解压缩 wget http://netlib.org/toms/837.zip unzip 837.zip cd ...
- 基于Linux的v4l2视频架构驱动编写
其实,我刚开始一直都不知道怎么写驱动,什么都不懂的,只知道我需要在做项目的过程中学习,所以,我就自己找了一个关于编写Linux下的视频采集监控项目做,然后上学期刚开学的时候听师兄说,跟院长做项目,没做 ...
- mysql创建数据库并指定uft8编码
CREATE DATABASE IF NOT EXISTS ymk default character set utf8 COLLATE utf8_general_ci;
- [luogu] P3202 [HNOI2009]通往城堡之路(贪心)
P3202 [HNOI2009]通往城堡之路 题目描述 听说公主被关押在城堡里,彭大侠下定决心:不管一路上有多少坎坷,不管城堡中的看守有多少厉害,不管救了公主之后公主会不会再被抓走,不管公主是否漂亮. ...
- jvm 虚拟机参数_方法区内存分配
1.方法区( 永久区 ) 和堆一样,方法区是一块所有线程共享的区域,他用于保存系统类的信息.默认情况下 -XX:MaxPermSize 为 64m.如果系统运行时产生大量的类,就需要设置一个合适方法区 ...
- UltraEdit正則表達式介绍及实例
前几天,有个将Excel中的数据导入到数据库中的需求.原本想到用程序读取Excel中的数据并存储到数据库中,但经一哥们的提醒,说用 EditPlus或UltraEdit这种工具直接将数据拼凑成SQL插 ...
- debian mysql 定时自己主动备份的脚本
#!/bin/sh LOG=/var/log/mysql-backup.log # mysql db info USER_ROOT=XXXXXX USER_PWD=XXXXXXX # mysql da ...
- python 提取主域名和子域名代码——先根据规则提取,如果有问题,则使用tldextract
import tldextract def extract_domain(domain): suffix = {'.com','.la','.io', '.co', '.cn','.info', '. ...