POJ 1083 Moving Tables (贪心)
2014-04-25 15:05
381 查看
OJ题目:click here~~
题目分析:走廊的一侧是1,3……399号房间,另一侧是2,4……400号房间。从房间号s到t,房间前的走廊不重叠的可以同时搬桌子。搬一趟桌子需要10分钟,问最少需要的时间。
贪心是可以解决。详见代码注释。
AC_CODE
另一种方法,计算走廊重叠的最大个数。
题目分析:走廊的一侧是1,3……399号房间,另一侧是2,4……400号房间。从房间号s到t,房间前的走廊不重叠的可以同时搬桌子。搬一趟桌子需要10分钟,问最少需要的时间。
贪心是可以解决。详见代码注释。
AC_CODE
const int Max_N = 202; const int inf = 1<<30; struct Node{ int x; int y; Node(){} Node(int i , int j):x(i),y(j){} friend bool operator<(const Node &A , const Node &B){//按照起始房间号从小到大排序 return A.x < B.x; } }node[Max_N] ; int n ; int visit[Max_N]; int main() { int t , i , j , k ; cin >> t ; while(t--) { memset(visit , 0 , sizeof(visit)); visit[0] = 1; cin >> n ; for(i = 1;i<= n;i++){ scanf("%d%d",&node[i].x , &node[i].y) ; if(node[i].x > node[i].y) swap(node[i].x , node[i].y);//都从小到大,不影响结果 if(node[i].x&1 == 0) node[i].x-- ;//精确所占用的走廊号 if(node[i].y&1) node[i].y++ ;//精确所占用的走廊号 } sort(node + 1, node + 1 + n) ; node[0].y = 0; int f = 1 ; int times = 0 ; int pre ; while(*min_element(visit + 1 , visit + 1 + n) != 1){//如果没有全部处理完,则继续 times++;//每次循环,多加一次 pre = 0; for(i = 1;i <= n;i++){ if(!visit[i]&&node[i].x > node[pre].y){//如果还没有处理,且与前面一个不重叠,则可入选 pre = i; visit[i] = 1;//标记已处理 } } } cout << times*10 << endl ; } return 0; }
另一种方法,计算走廊重叠的最大个数。
const int Max_N = 202; const int inf = 1<<30; int n ,num[2*Max_N]; int main() { int t , i , j , k ,a , b; cin >> t ; while(t--) { cin >> n ; memset(num , 0 , sizeof(num)) ; for(i = 1;i <= n;i++){ scanf("%d%d",&a ,&b) ; if(a > b) swap(a , b) ; if(a&1 == 0) a-- ; if(b&1) b++ ; for(j = a;j <= b;j++) num[j]++; } printf("%d\n",(*max_element(num + 1, num + 402))*10) ; } return 0; }
相关文章推荐
- POJ- 1083-Moving Tables-贪心
- POJ 1083 && HDU 1050 Moving Tables(贪心)
- Poj_1083 Moving Tables(贪心,测试数据)
- POJ 1083 && HDU 1050 Moving Tables (贪心)
- 【贪心】Moving Tables POJ 1083
- POJ 1083 Moving Tables(贪心)
- POJ 1083 Moving Tables 贪心
- POJ 1083 Moving Tables(贪心!!)
- POJ 1083 && HDU 1050 Moving Tables (贪心)
- POJ1083 Moving Tables——heap+贪心——pku1083
- POJ-1083-Moving Tables-2013-11-26 16:43:58
- POJ1083 HDU1050 ZOJ1029 UVALive2326 Moving Tables【序列+最值】
- poj 1083 moving tables 【动态规划】
- POJ 1083 Moving Tables(水题)
- POJ 1083 Moving Tables(水题)
- POJ1083,Moving Tables,好纠结的题
- Moving Tables--POJ 1083
- POJ 1083 Moving Tables 搬桌子
- ZOJ-1029(POJ-1083、HDU-1050) Moving Tables
- POJ 1083 Moving Tables