HDOJ HDU 1050 Moving Tables
来源:互联网 发布:数据标准咨询公司 编辑:程序博客网 时间:2024/06/05 02:13
HDOJ 1050 Moving Tables
题目
点此查看 HDOJ 1050 Moving Tables
分类
贪心
题意
搬桌子
有南北各里200间房,和中间走廊 如图
每次从 房间s 搬到 房间t
走廊每次只能过一张桌子
每次搬运耗时 10min 求 最短时间例如 :
11 搬到 12 ,14 搬到 13 可同时搬运 耗时 10min
1 搬到 4 , 3 搬到 6 不可同时搬运 耗时 20 min
## 题解
很容易 看出贪心策略
保证每 10 min 搬运 走廊都是最大利用 (选出尽可能多的不重叠区间 )
则 耗时最少
## 技巧
不重叠区间
先把区间按左端排好队
每次挑出最左边的区间且与上次挑出区间重叠的区间
重复上述过程即可
## 代码
#include <iostream>#include <cstring>#include <algorithm>#define max 400using namespace std;struct path{ int left; int right; bool operator < (const path & b) const { if(left < b.left) return true; else return false; } friend istream & operator>> (istream & in,path & b) { int l,r; in >> l >> r; if(r < l) swap(l,r); b.left = (l + 1)/2; b.right = (r + 1)/2; return in; }};path rp[max];int jdg[max];int main(){ int n,m,t,r; bool f; cin >> n; while(n--) { cin >> m; t = 0; memset(jdg,0,sizeof(jdg)); f = true; for(int i = 0;i < m;i++) { cin >> rp[i]; } sort(rp,rp+m);// for(int i = 0;i < m;i++)// cout << rp[i].left << " " << endl; while(f) { t += 10; r = -1; f = false; for(int i = 0;i < m;i++) { if(jdg[i]) continue; if(r < rp[i].left) { jdg[i] = 1; r = rp[i].right; f = true; } } } cout << t - 10 << endl; } return 0;}
阅读全文
0 0
- HDOJ HDU 1050 Moving Tables
- hdoj 1050 Moving Tables
- hdoj 1050 Moving Tables
- HDOJ 1050 Moving Tables
- HDOJ 1050 Moving Tables
- HDOJ 1050 Moving Tables
- HDOJ 1050 Moving Tables
- HDOJ 1050 Moving Tables
- HDOJ--1050Moving Tables!!
- HDU 1050 Moving Tables
- hdu 1050 moving tables
- HDU-1050 Moving Tables
- hdu-1050-Moving Tables
- HDU 1050 Moving Tables
- HDU 1050 Moving Tables
- hdu 1050 moving tables
- hdu 1050 Moving Tables
- hdu 1050 Moving Tables
- 循环语句
- Redis源码剖析--对象Object
- ubuntu软件更新导致软件包损坏
- Hadoop(3)__Hive安装过程与hive sql初步使用
- Python 库安装(scipy,numpy)
- HDOJ HDU 1050 Moving Tables
- centos7下安装lua-5.3.4
- JetBrains系列IDE配置快速输入模块示例(以Android Stdio为例)
- POJ2010 二分答案
- 【学习笔记】不定长数组输入
- 汇编proto、proc、invoke伪指令与函数声明、函数定义、函数调用
- 【crontab】“bad minute”及“errors in crontab file, can't install”错误处理
- js拖动窗口
- sql 整理积累