hdu_1050 Moving Tables 贪心
Moving Tables
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 45555 Accepted Submission(s): 14817

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 Output
data[i].s = (data[i].s+1)/2; data[i].t = (data[i].t+1)/2;
#include <iostream>
#include <stdio.h>
#include <algorithm> using namespace std; struct dat
{
int s;
int t;
int visit;
} data[]; bool cmp(dat a, dat b)
{
return a.s<b.s; // return a.t<b.t 是错的
} int main()
{
int t, n; scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(int i=; i<n; i++)
{
scanf("%d%d",&data[i].s, &data[i].t);
if(data[i].s>data[i].t)
{
int temp = data[i].s;
data[i].s = data[i].t;
data[i].t = temp;
}
data[i].s = (data[i].s+)/;
data[i].t = (data[i].t+)/;
data[i].visit=;
//printf("%d%d\n",data[i].s,data[i].t);
} sort(data, data+n, cmp); int ans=, j, temp; for(int i=; i<n; i++)
{
if(!data[i].visit)
{
j=i+;
temp = i;
data[i].visit=;
while(j!=n)
{
if(!data[j].visit&&data[temp].t < data[j].s)
{
data[j].visit=;
temp=j;
}
j++;
}
ans++;
}
} printf("%d\n", ans*); }
return ;
}
另一种思路就是区间覆盖,找覆盖次数最大的点的覆盖次数。
hdu_1050 Moving Tables 贪心的更多相关文章
- Moving Tables(贪心或Dp POJ1083)
Moving Tables Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 28304 Accepted: 9446 De ...
- zstu.2512. Moving Tables(贪心)
Moving Tables Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1182 Solved: 563 Description The famo ...
- HDU1050(Moving Tables:贪心算法)
解题思路: 这种做法是基于hdu2037的做法上考虑的,找出所有可以同时搬运的桌子,然后就很方便求出最短总时间. 还有一种更简单的做法是直接遍历一遍找出与别的重复次数最多的那片区域,重复次数*10就可 ...
- UVAlive 2326 Moving Tables(贪心 + 区间问题)
The famous ACM (Advanced Computer Maker) Company has rented a floor of a building whose shape is in ...
- --hdu 1050 Moving Tables(贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1050 AC code: #include<stdio.h> #include<str ...
- POJ 1083 && HDU 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 ...
- HDOJ 1050 Moving Tables
Moving Tables Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- Moving Tables
Moving Tables Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total ...
随机推荐
- P3376 【模板】网络最大流( Edmonds-krap、Dinic、ISAP 算法)
P3376 [模板]网络最大流( Edmonds-krap.Dinic.ISAP 算法) 题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入格式 第一行包含四个正整数N.M.S ...
- 【Java技术系列】爱情36技之Bug大战
1. 鲁迅先生说:程序员,天不怕地不怕,就怕小虫儿爬呀爬,爬呀爬. 随着时间的推移,鲁迅先生又说:真正勇猛的程序员,敢于让虫子面对惨淡的虫生. 虫子在程序员心中是啥东西?虫子的学名为 Bug,是多少入 ...
- 三角函数在Three.js中的点的移动轨迹应用
在学习2D文字的时候,看到官网有这样一个示例: https://threejs.org/examples/#css2d_label { 函数体 $@ } abc 1 2 3 4 5 :wq a.s ...
- ssh配置文件最佳实践(伪)
时间:2019-09-11 说明:以下配置是基于常用安全设置,并增加阿里云要求的安全参数而成 版本:第一版 # 1.监听相关 ## 指定ssh端口 Port 1314 ## 只监听网络协议 Addre ...
- Python高级特性-迭代器和生成器
迭代器 Python中可迭代对象(iterable)通俗指可直接作用与For循环的数据对象,如Python中的集合数据类型,字符串(str),列表(list),元组(tuple),集合(set),字典 ...
- 理解class.forName() ---使用jdbc方式链接数据库时会经常看到这句代码
目录(?)[-] 官方文档 类装载 两种装载方法的区别 不同的类装载器 是否实例化类 在jdbc链接数据库中的应用 资源 原文地址:http://yanwushu.sinaapp.com/clas ...
- 返回指定字符串位置的函数FIELD(S,S1,S2,...) 与 FIND_IN_SET(S1,S2) 函数
FIELD(S,S1,S2,...) 与 FIND_IN_SET(S,S1) 函数 ------> 这2个函数都是返回指定字符串在源串中的出现的位置(皆是第一次出现的位置),但2个函数的参数 ...
- js操作svg整体缩放
首先我们先创建一个svg整体布局,代码如下: <!DOCTYPE html> <html> <head> <title>js操作svg实现整体缩放< ...