编程之美----高效率地安排见面会----贪心策略
2013-07-07 20:37
246 查看
每一个面试是一个整数的闭区间【Bi,Ei】表示开始时间和结束时间,有N个面试要进行,求最少的面试点。
思路:按开始时间排序,使用贪心策略,每一个面试使用一个最小的正整数k来表示可行的颜色,当然如果重叠了就必须使用一个新的颜色。
c++实现:
思路:按开始时间排序,使用贪心策略,每一个面试使用一个最小的正整数k来表示可行的颜色,当然如果重叠了就必须使用一个新的颜色。
c++实现:
#include <iostream> #include <vector> #include <algorithm> using namespace std; struct meeting{ int b,e; }m[101]; bool cmp(meeting x,meeting y)//用于排序的谓词函数,这里没有抽象成为函数对象 //而是简单使用函数指针 { return x.b<y.b; } bool isoverlap(meeting &x,meeting &y) { if(x.e<=y.b || x.b>=y.e)return 0; else return 1; } bool isforbidden[101]; int color[101]; int main() { int n=4; m[0].b=1;m[0].e=5;m[1].b=2;m[1].e=3;m[2].b=3;m[2].e=4;m[3].b=3;m[3].e=6; sort(m,m+4,cmp); int nmaxcolor=0,k; for(int i=0;i<n;i++) { for(k=0;k<nmaxcolor;k++) isforbidden[k]=0; for(int j=0;j<i;j++) if(isoverlap(m[j],m[i]))isforbidden[color[j]]=1; for(k=0;k<nmaxcolor;k++) if(!isforbidden[k])break; if(k<nmaxcolor)color[i]=k; else color[i]=nmaxcolor++; } cout<<nmaxcolor<<endl; return 0; }
相关文章推荐
- 编程之美----高效率地安排见面会----贪心策略
- 编程之美-----高效率地安排见面会
- 读书笔记之编程之美 - 1.9 高效率地安排见面会
- 编程之美--1.9高效率的安排见面会(解法二python)
- 编程之美 set 15 高效率地安排见面会
- 高效率安排见面会问题(比编程之美的解法复杂度低n-1个数量级)
- 【编程之美】高效率的安排见面会
- 【编程之美】高效率的安排见面会
- 编程之美读书笔记_1.9 高效率的安排见面会
- 编程之美:1.9高效率安排见面会 图的m着色问题 回溯法
- 编程之美-高效率的安排见面会
- 第1章 游戏之乐——高效率地安排见面会
- 编程之美之高效安排见面会
- 高效率的安排见面会问题
- 高效率地安排见面会
- 编程之美:第一章 1.9高效率地安排见面会
- 贪心策略 活动安排 会场安排
- 《编程之美》1.9:高效率的安排见面会的一个解法
- 编程之美-高效率安排见面会的方法整理
- 编程之美 - 安排见面会问题