POJ2376——Cleaning Shifts(贪心)
来源:互联网 发布:黑客网站攻击软件 编辑:程序博客网 时间:2024/06/05 16:51
题目链接
此题就是给你一堆小区间,然后用尽量小的小区间数目填满大区间,输出最小值,如果填不满输出-1,。通常做法就是排序,再贪心最大的区间右边界。但是还有一种做法,是在Discuss里看见一个大神写的一段无排序的精简代码,想法也和贪心方式差不多,精妙之处就是拿了一整段空间来保存每个可用空间,然后用了一个“指针”now来标记当前状态,接着用pre和to去表示区间的起始和终止位置。然后依次循环判断即可。
#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<algorithm>using namespace std;int s[1000050]= {0};int main(){ int n, m; scanf("%d%d",&n,&m); for(int i=1; i<=n; i++) { int a, b; scanf("%d%d",&a,&b); s[a] = s[a] > b ? s[a] : b; } int to=0, now=1, pre=1, cont=0; while(now<=m) { for(int i=pre; i<=now; i++) if(to<s[i]) { to=s[i]; pre=i; } if(now==to+1) { printf("-1\n"); return 0; } now=to+1; cont++; } printf("%d\n",cont); return 0;}
0 0
- POJ2376——Cleaning Shifts(贪心)
- 贪心——POJ2376 Cleaning Shifts
- POJ2376 Cleaning Shifts 贪心
- poj2376 Cleaning Shifts 贪心
- POJ2376 Cleaning Shifts(贪心)
- POJ2376 Cleaning Shifts 【贪心】
- POJ2376贪心Cleaning Shifts
- POJ2376 Cleaning Shifts(贪心)
- POJ2376 Cleaning Shifts (贪心)
- poj2376 Cleaning Shifts(区间贪心)
- poj2376(Cleaning Shifts)贪心算法
- 区间贪心:POJ2376--Cleaning Shifts
- POJ2376-Cleaning Shifts-区间贪心
- POJ2376--Cleaning Shifts(贪心)
- POJ2376 Cleaning Shifts (贪心)
- poj2376 Cleaning Shifts
- POJ2376-Cleaning Shifts
- poj2376 Cleaning Shifts
- 学习笔记之JavaSE(40)--IO流2
- Linux 默认软件源切换
- FTP使用
- value toDF is not a member of org.apache.spark.rdd.RDD[People]
- 从java 反射看延迟加载(代理模式)(七)——jdkproxy实现原理
- POJ2376——Cleaning Shifts(贪心)
- 灰度测试,灰度发布
- 【hrbust】2298 Diamond 【数学+暴力】
- 问答与思考--迷茫?
- 数据结构——二叉树
- 实现下拉列表,点击其他位置自动隐藏效果的三种方式比较
- 怎样制作FL Studio步进音序器中的节奏
- 物联卡
- Android Studio添加第三方库(.jar && .so)