ITA 贪心算法
来源:互联网 发布:彩票组合软件 编辑:程序博客网 时间:2024/06/06 07:04
书上的例子,活动选择问题
<span style="font-size:10px;">typedef struct Act{int s;int f;}Act;bool cmp(Act a, Act b){return a.f <b.f;}int GreedyActSelector(Act* s, int n, Act* A){int m = 0, k =0;A[0] = s[0];for(m=1; m<n; ++m){if(s[m].s >= A[k].f){A[++k] = s[m];}}return k;}int main(){int n = 0,i=0;cout<<"输入活动个数: "<<endl;cin>>n;Act*arr = new Act[n];Act* A = new Act[n];cout<<"输入"<<n<<"个活动的开始和结束时间:"<<endl;for(i=0;i<n;++i)cin>>arr[i].s>>arr[i].f;sort(arr,arr+n,cmp);int k = GreedyActSelector(arr,n,A);cout<<"选择的活动:"<<endl;for(i=0;i<=k;++i)cout<<A[i].s<<","<<A[i].f<<endl;return 0;}</span>
区间着色问题,改了蛮久的,因为没有考虑清楚,每一个标注了true的跳过,从第一个false的开始,但是必须注意的是对该活动也要标注,记录在count中不然就不会跳出循环。
//贪心算法,活动选择问题typedef struct Act{int s;int f;bool flag;int r;}Act;bool cmp(Act a, Act b){return a.f <b.f;}int GreedyActSelector(Act* s, int n){int m = 0,count=0, end=0, room =0;while(count<n){++ room;//再开辟新房间for(m=0;s[m].flag;++m);//找到第一个false,并对其进行分配s[m].flag = true;//标记已分配s[m].r = room;//写房间号end = s[m].f;//记录新的结束时间++ count;//已经分配房间的个数//cout<<"end "<<end<<"room "<<room<<"count "<<count<<endl;for(; m<n; ++m){if((s[m].s >= end) && (!s[m].flag)){s[m].flag = true;//标记已分配s[m].r = room;//写房间号end = s[m].f;//记录新的结束时间++ count;//已经分配房间的个数//cout<<"end "<<end<<"room "<<room<<"count "<<count<<endl;}}}cout<<room;return room;}int main(){int n = 0,i=0;cout<<"输入活动个数: "<<endl;cin>>n;Act*arr = new Act[n];cout<<"输入"<<n<<"个活动的开始和结束时间:"<<endl;for(i=0;i<n;++i){cin>>arr[i].s>>arr[i].f;arr[i].flag =false;}sort(arr,arr+n,cmp);int k = GreedyActSelector(arr,n);return 0;}
0 0
- ITA 贪心算法
- 【贪心】贪心算法总结
- ITA 15 动态规划
- ITA 15 DP 图
- ITA 动态规划2
- ITA 动态规划3
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- Thread详解一(interrupt)
- 怎样获取Android手机屏幕的大小(分辨率、密度)
- 胜利大逃亡(续)
- 关于MMSEG分词算法
- java.math.BigDecimal cannot be cast to [Ljava.lang.Object;
- ITA 贪心算法
- 时间函数millis( )
- spring 获取对象方式
- MongoDB入门简介
- PKU1287裸的Kruskal算法低空飘过
- storyboard中用xib文件创建定制的UITableViewCell对象
- 批改ViewPager调用setCurrentItem时,滑屏的速度
- http://localhost:8080/main.do?action=index改成http://localhost:8080/来访问首页
- PyQt4参考指南---介绍