码迷,mamicode.com
首页 > 其他好文 > 详细

会场安排问题

时间:2018-05-14 10:28:37      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:输出   lag   i++   include   示例   algorithm   else   font   nod   

问题描述:

  假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小会场数)。

代码:

 1 #include <iostream>
 2 #include <vector>
 3 #include <algorithm>
 4 using namespace std;
 5 
 6 struct node
 7 {
 8     int data;
 9     int flag;
10 };
11 
12 bool cmp(node a,node b)
13 {
14     return a.data<b.data;
15 }
16 
17 int f(vector<node> v)
18 {
19     int now=0,max=0;
20     vector<node>::iterator iter=v.begin();
21     for(;iter<=v.end();iter++)
22     {
23         if(iter->flag==1)
24         {
25             now++;
26             if(now>max)
27                 max=now;
28         }
29         else
30         {
31             now--;
32         }
33     }
34     return max;
35 }
36 
37 int main()
38 {
39     int n;
40     vector<node> vec;
41     node t;
42     int x;
43     cin>>n;
44     for(int i=1;i<=2*n;i++)
45     {
46         cin>>x;
47         t.data=x;
48         t.flag=i%2;
49         vec.push_back(t);
50     }
51     
52     sort(vec.begin(),vec.end(),cmp);
53     int ans=f(vec);
54     cout<<ans<<endl;
55     return 0;
56 }

输入示例:

5

1 23

12 28

25 35

27 80

36 50

输出示例:

3

会场安排问题

标签:输出   lag   i++   include   示例   algorithm   else   font   nod   

原文地址:https://www.cnblogs.com/wangxuelin/p/9034568.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!