Moving Tables
Moving Tables
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 21 Accepted Submission(s) : 11
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description

The
floor has 200 rooms each on the north side and south side along the
corridor. Recently the Company made a plan to reform its system. The
reform includes moving a lot of tables between rooms. Because the
corridor is narrow and all the tables are big, only one table can pass
through the corridor. Some plan is needed to make the moving efficient.
The manager figured out the following plan: Moving a table from a room
to another room can be done within 10 minutes. When moving a table from
room i to room j, the part of the corridor between the front of room i
and the front of room j is used. So, during each 10 minutes, several
moving between two rooms not sharing the same part of the corridor will
be done simultaneously. To make it clear the manager illustrated the
possible cases and impossible cases of simultaneous moving.

For
each room, at most one table will be either moved in or moved out. Now,
the manager seeks out a method to minimize the time to move all the
tables. Your job is to write a program to solve the manager’s problem.
Input
given in the first line of the input. Each test case begins with a line
containing an integer N , 1<=N<=200 , that represents the number
of tables to move. Each of the following N lines contains two positive
integers s and t, representing that a table is to move from room number s
to room number t (each room number appears at most once in the N
lines). From the N+3-rd line, the remaining test cases are listed in the
same manner as above.
Output
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
题意:
要你搬桌子,有重叠的区域段不能同时搬,不重叠可以同时。每次搬桌子需要10分钟,问你最少用多长时间。
注意:
1.判断首尾,一开始就比较下,小的为start,大的为end。
if(start>end){/*要判断头尾*/
t=end;
end=start;
start=t;
}
2.由于(1,2)(3,4)。。。这种属于同一区段,因此简化下,就是( +1)/2,将区域划分,因为偶数加上没影响,所以可以不判断都直接计算。
start=(start+1)/2;
end=(end+1)/2;
3.核心算法:贪心:哪个区域的经过次数最多,该次数就是我们所求取得数值;
for(j=start;j<=end;j++)
a[j]++;
4.排序,排序后得到最大即:最繁忙的区域段 sort(a,a+201,cmp);(由大到小)
5.输出时,不要忘了*10。
代码:
#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
#include<string.h>
bool cmp(int a,int b)
{
if (a>b) return true;
return false;
}
int main(){
int T,a[201],n,t;
int i,start,end,j;
while(scanf("%d",&T)!=EOF){
while(T--){
memset(a,0,sizeof(a));/*头文件是<string.h>*/
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d%d",&start,&end);
if(start>end){/*要判断头尾*/
t=end;
end=start;
start=t;
}
start=(start+1)/2;
end=(end+1)/2;
for(j=start;j<=end;j++)
a[j]++;
}
sort(a,a+201,cmp);
printf("%d\n",a[0]*10);
}
}
return 0;
}
Moving Tables的更多相关文章
- 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 ...
- hdoj 1050 Moving Tables【贪心区间覆盖】
Moving Tables Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- uvalive 2326 - Moving Tables(区间覆盖问题)
题目连接:2326 - Moving Tables 题目大意:在一个走廊上有400个教室, 先在有一些桌子要移动, 每次移动需要十分钟, 但是不同房间的桌子可以在同一个十分钟内移动,只要走廊没有被占用 ...
- HDU1050(Moving Tables:贪心算法)
解题思路: 这种做法是基于hdu2037的做法上考虑的,找出所有可以同时搬运的桌子,然后就很方便求出最短总时间. 还有一种更简单的做法是直接遍历一遍找出与别的重复次数最多的那片区域,重复次数*10就可 ...
- B - Moving Tables
B - Moving Tables Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
- POJ1083 Moving Tables
POJ1083 Moving Tables Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 35297 Accepted: ...
随机推荐
- 关于int **
例子1: int foo(int *array) { array = (); ; } //外头调用 int * uidArray = NULL; foo(uidArray): 这时候我想要在函数里给数 ...
- HW3.3
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- hdu5601-N*M bulbs(黑白棋盘染色)
一个矩形,一个人从左上角走到右下角,每走过一个位置把0变成1,1变成0. 求有没有可能他离开之后所有的数都是0 假设这个矩形是一个棋盘,黑白相间. 这样会发现从一个颜色走到相同颜色可以对棋盘不产生任何 ...
- vi / vim 删除以及其它命令
删除一行:dd 删除一个单词/光标之后的单词剩余部分:dw 删除当前字符:x 光标之后的该行部分:d$ 文本删除 dd 删除一行 d$ 删除以当前字符开始的一行字符 ndd 删除以当前行开始的n行 d ...
- Learning JavaScript Design Patterns The Module Pattern
The Module Pattern Modules Modules are an integral piece of any robust application's architecture an ...
- hdoj 1253 胜利大逃亡
胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- jQuery事件绑定的最佳实践
如果你经常使用jQuery,那么你也许很熟悉事件绑定.这是很基本的东西,但是深入一点,你就能够找到机会让你事件驱动的代码变得不太零碎,并且更容易管理. 更好的选择器策略 让我们从基础的例子开始.下面的 ...
- maven 通过nexus创建工厂的配置
访问中央工厂的地址:http://localhost:8081/nexus/index.html#welcome admin.admin123 查找到自己配置的maven仓库的位置,编辑setti ...
- HDU--1533--Going Home--KM算法
Going Home Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- Nginx下载服务生产服务器调优
一.内存调优 内核关于内存的选项都在/proc/sys/vm目录下. 1.pdflush,用于回写内存中的脏数据到硬盘.可以通过 /proc/sys/vm/vm.dirty_background_ ...