ACM_程序设计竞赛:贪心算法:区间问题
来源:互联网 发布:php study教程 编辑:程序博客网 时间:2024/06/07 06:45
- 有n项工作,每项工作分别在
si 时间开始,ti 时间结束。对于每项工作你选择参与与否,如果选择 了参与,那么自始至终就必须全程参与。参与工作的时间段不可以重复。(开始的瞬间和结束重复也不可以)
尽可能多的参与工作,可以参与多少。
/*------------------------------------[输入]n=5, s={1,2,,4,6,8},t={3,5,7,9,10}------------------------------------[输出]3(选择1,3,5)-------------------------------------[算法]在可选的时间内,每次都选择结束时间最早的工作*/#include<iostream>#include<algorithm>using namespace std;const int MAX_N=100000;int N; //时间段数int S[MAX_N],T[MAX_N];pair<int,int> itv[MAX_N]; //用于工作排序的pair数组bool cmp(const pair<int,int> &a,const pair<int,int> &b) //输入性参数,不可改变 { return a.first < b.first; } void solve(){ //对pair字典序比较 // 将T存入frist,S存入second for(int i=0;i<N;i++){ itv[i].first=T[i]; itv[i].second=S[i]; } std::sort(itv,itv+N,cmp); //t是最后所选工作的结束时间 int ans=0,t=0; for(int i=0;i<N;i++){ if(t<itv[i].second){ ans++; t=itv[i].first; } } cout<<ans<<endl;}int main(int ac,char* av[]){ while(cin>>N){ for(int i=0;i<N;i++){ cout<<"输入"<<i; cin>>S[i]; cin>>T[i]; } solve(); } return 0;}
0 0
- ACM_程序设计竞赛:贪心算法:区间问题
- ACM_程序设计竞赛:贪心算法:硬币问题
- ACM_程序设计竞赛:贪心算法:saruman army
- ACM_程序设计竞赛:贪心算法:字典最小序
- POJ 2376-Cleaning Shifts [贪心] [区间] 《挑战程序设计竞赛》2.2
- ACM_程序设计竞赛:DP:01背包
- 挑战程序设计竞赛: 硬币问题, 一直贪心
- 区间调度问题 ----- 贪心算法
- 贪心算法,关于区间问题
- ACM_算法竞赛入门_源程序
- 《挑战程序设计竞赛》2.2一直往前!贪心算法
- ACM_总论_国际大学生程序设计竞赛考点
- ACM_程序设计竞赛:穷举法:DFS(深度优先)
- ACM_程序设计竞赛:穷举法:BFS(广度优先)
- 贪心算法——区间调度问题
- 贪心算法之区间覆盖问题
- 贪心算法之区间取点问题
- 贪心算法之区间覆盖问题
- 工作中经常使用的Linux命令
- 100万并发连接服务器笔记之Java Netty处理1M连接会怎么样
- 知识从来就不是一个人的
- JAVA程序员养成计划之JVM学习笔记(1)-运行时数据区
- Activity的启动模式与标志位
- ACM_程序设计竞赛:贪心算法:区间问题
- c++实验三--个人所得税计算器
- oa集成rtx注意问题
- asp.net mvc easyui datagrid使用
- 使用GDI+进行图片处理时要注意的问题
- SQL(2) -- SQL性能优化[未完成]
- Android 面试(完结篇)
- Maven的热部署
- HTML学习笔记