编程之美----高效率地安排见面会----贪心策略
2013-07-08 15:00
288 查看
每一个面试是一个整数的闭区间【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; }
相关文章推荐
- 编程之美----高效率地安排见面会----贪心策略
- 高效率安排见面会问题(比编程之美的解法复杂度低n-1个数量级)
- 【编程之美】高效率的安排见面会
- 【编程之美】高效率的安排见面会
- 编程之美-----高效率地安排见面会
- 读书笔记之编程之美 - 1.9 高效率地安排见面会
- 编程之美 set 15 高效率地安排见面会
- 编程之美--1.9高效率的安排见面会(解法二python)
- 《编程之美》1.9:高效率的安排见面会的一个解法
- 编程之美-高效率安排见面会的方法整理
- 编程之美 - 安排见面会问题
- 《编程之美》1.9:高效率的安排见面会的一个解法
- 编程之美:高效率地安排见面会
- 1.9 高效率的安排见面会
- [编程之美]安排见面会
- 编程之美1.9——高效率地安排见面会
- 会场安排问题(贪心策略)
- 监考安排 --- 简单的贪心策略
- 《编程之美》读书笔记05: 1.9 高效率的安排见面会
- flyinghearts《编程之美》读书笔记连载(6)-高效率安排见面会