4144:畜栏保留问题
总时间限制: 1000ms 内存限制: 65536kB
描述
农场有N头牛,每头牛会在一个特定的时间区间[A, B](包括A和B)在畜栏里挤奶,且一个畜栏里同时只能有一头牛在挤奶。现在农场主希望知道最少几个畜栏能满足上述要求,并要求给出每头牛被安排的方案。对于多种可行方案,主要输出一种即可。

输入
输入的第一行包含一个整数N(1 ≤ N ≤ 50, 000),表示有N牛头;接下来N行每行包含两个数,分别表示这头牛的挤奶时间[Ai, Bi](1 ≤ A≤ B ≤ 1, 000, 000)。
输出
输出的第一行包含一个整数,表示最少需要的畜栏数;接下来N行,第i+1行描述了第i头牛所被分配的畜栏编号(从1开始)。
样例输入
5
1 10
2 4
3 6
5 8
4 7
样例输出
4
1
2
3
2
4

来源
http://poj.org/problem?id=3190

问题链接:Bailian4144 畜栏保留问题
问题简述:(略)
问题分析:这个题与参考链接是同一个题,参见参考链接。
程序说明:(略)
参考链接:POJ3190 Stall Reservations【贪心】
题记:(略)

AC的C++语言程序如下:

/* POJ3190 Stall Reservations */#include <iostream>
#include <algorithm>
#include <queue>
#include <stdio.h>using namespace std;const int N = 50000;
struct Cow {int start, end, no;bool operator < (const Cow& a) const { // 产奶结束早的越优先return (end != a.end) ? end > a.end : start > a.start;}
} cow[N], now;
int num[N];// 贪心法处理顺序
int cmp(Cow a, Cow b)
{return (a.start == b.start) ? a.end < b.end : a.start < b.start;
}int main()
{int n;while(~scanf("%d", &n)) {for(int i=0; i<n; i++) {scanf("%d%d", &cow[i].start, &cow[i].end);cow[i].no = i;}sort(cow, cow + n, cmp);int k = 0;priority_queue<Cow> q;q.push(cow[0]);num[cow[0].no] = ++k;for(int i=1; i<n; i++) {now = q.top();if(cow[i].start > now.end) { // 共用挤奶器num[cow[i].no] = num[now.no];q.pop();} elsenum[cow[i].no] = ++k;q.push(cow[i]);}printf("%d\n", k);for(int i=0; i<n; i++)printf("%d\n", num[i]);}return 0;
}

Bailian4144 畜栏保留问题【贪心】相关推荐

  1. 111. 畜栏预定【贪心】

    经典的贪心问题,和分组问题很像.不过这里我们还得维护坐标信息. #include<bits/stdc++.h> using namespace std; #define x first # ...

  2. 程序设计入门经典题解(百练篇)

    参考链接:PKU百练题解(Bailian) Bailian1017 装箱问题[贪心] - 海岛Blog - CSDN博客 POJ1088 Bailian1088 滑雪[DFS+记忆化搜索]_海岛Blo ...

  3. 【贪心】畜栏预定(ybtoj 贪心-1-3)

    畜栏预定 ybtoj 贪心-1-3 题目大意 有n头牛,每头牛会在某一连续时间段吃草,问你同一时间最对有多少头牛,最后对于每一头牛给一个吃草的位置,使得同一时间内吃草的牛的位置不重合 输入样例 5 1 ...

  4. 算法笔记(0002) - 【贪心算法】活动安排问题

    贪心算法 原理 在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解.贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许 ...

  5. 贪心算法 openjudge 百练 python

    https://www.icourse163.org/learn/PKU-1001894005?tid=1450413466#/learn/content 程序设计与算法(二)算法基础 这里写目录标题 ...

  6. 第十二届蓝桥杯Java B组——前期知识汇总梳理

    本章内容包括 1.掌握基础结构的写法: 自定义数据类型的快排 自定义数据类型的优先队列 普通数据类型的优先队列 归并排序 什么时候使用归并排序? 归并排序+自定义数据类型+自定义排序的综合性问题(DN ...

  7. 【数据结构和算法设计】算法篇(7) 贪心法

    文章目录 7.1 贪心法概述 7.1.1 什么是贪心法 7.1.2 用贪心法求解的问题应具有的性质 1. 贪心选择性质 2. 最优子结构性质 7.1.3 贪心法的一般求解过程 7.2 求解活动安排问题 ...

  8. 算法设计与分析——算法思想总结

    算法设计与分析 1.分治法 分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题相互独立且与原问题相同.递归的解这些子问题,然后将各子问题的解合并得到原问题的解. 分治法所能解 ...

  9. 贪心:remove K digits移除K个数字

    问题描述: 已知一个使用字符串表示的非负整数num,将num中的k个数字移 除,求移除k个数字后,可以获得的最小的可能的新数字. 例如:num = "1432219" , k = ...

最新文章

  1. VIM命令快速记忆(转自杰哥)
  2. 总结Anaconda+Tensorflow遇到的坑
  3. ie关闭浏览器tab提示信息
  4. java 减法_java 加减法2
  5. Web服务器HttpServer(嵌入式设备)
  6. python 图片背景前景分离_【绝了】用 Python 把朋友头像变表情包!
  7. 经典编程问题之:选择排序、冒泡排序、汉诺塔游戏,均用js代码实现
  8. Oracle中将0x1D转为字符,orcle導入大數據文件
  9. python毕业设计作品基于django框架外卖点餐系统毕设成品(7)中期检查报告
  10. java jemalloc_jemalloc 快速上手攻略
  11. ffmpeg生成裸眼3D、伪3D视频
  12. iOS项目开发中的知识点与问题收集整理①
  13. 分享50个优秀的电子商务网站设计案例
  14. BZOJ4484: [Jsoi2015]最小表示
  15. 手机rar压缩包解密,rar压缩包权限密码多少?
  16. 基于Java+SSM+Vue农家乐管理系统(住宿-美食-活动)设计与实现
  17. udpping检测与对端udp协议通信状况
  18. tcl/tk sample.dll cannot be unloaded under a trusted interpreter
  19. 【最终总结版】linux内核编译过程
  20. 范式-范式:范式 百科

热门文章

  1. MS SQL SERVER2005更新触发器
  2. xp计算机管理窗口,XP系统设备管理器的打开技巧
  3. SQL那些事儿(八)--oracle用户、表、表空间之间的关系
  4. win32以动态链接库导出类及其成员变量
  5. 电脑版永恒纪元服务器正在维护,永恒纪元————【维护】1月10日更新维护公告...
  6. Spring boot yml文件的书写格式
  7. python分数由高至低排序_python之数据库
  8. Mysql 引优化分析
  9. nginx tornado php,tornado+nginx+python 微信公众号接入配置
  10. java多态 重写(override)的调用优先级