【POJ2376】Cleaning Shifts
题目大意:区间最小覆盖问题。
题解:本身是一道贪心水题,但是细节还是比较多的,记录一下。
由于每个奶牛对答案的贡献是一样的,肯定要选择在满足条件的基础上能够拓展最多的那个奶牛。为了满足条件,对区间左端点进行排序,每次决策集合为:满足区间左端点比当前边界 + 1 要小的情况下,右端点最大的那个奶牛。注意,这里一定要 + 1,因为只要覆盖就好。
代码如下
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn=25010;
int n,m;
struct node{int st,ed;}t[maxn];
bool cmp(const node &x,const node &y){return x.st<y.st;}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)scanf("%d%d",&t[i].st,&t[i].ed);
sort(t+1,t+n+1,cmp);
int now=1,bound=0,ans=0;
while(now<=n){
int ret=0;
while(now<=n&&t[now].st<=bound+1)ret=max(ret,t[now++].ed);
if(!ret)break;
++ans;
bound=max(bound,ret);
if(bound>=m)break;
}
if(bound<m)puts("-1");
else printf("%d\n",ans);
return 0;
}
【POJ2376】Cleaning Shifts的更多相关文章
- 【POJ3171】Cleaning Shifts 带权区间最小覆盖
题目大意:给定一个长度为 N 的序列,求带权区间最小覆盖. 题解:设 \(dp[i]\) 表示从左端点到 i 的最小权值是多少,则状态转移为:\(dp[e[i].ed]=min\{dp[j],j\in ...
- 【POJ - 2376】Cleaning Shifts(贪心)
Cleaning Shifts Descriptions: 原文是English,我这就直接上Chinese了,想看原文的点一下链接哦 大表哥分配 N (1 <= N <= 25,000) ...
- 【贪心】POJ2376-Cleaning Shifts
[题目大意] 给出几个小区间和大区间,求覆盖整个大区间的最少小区间个数,如果不可能则输出-1. [思路] 这道程序写得我很不爽快,迷迷糊糊写完了,提交一遍AC了,可是我自己都没怎么弄懂到底是怎么写出来 ...
- 【Luogu P4644】Cleaning Shifts
题目 给定 \(n\) 个区间 \([a_i, b_i]\), 花费为 \(c_i\), 求覆盖 \([L, R]\) 区间的所有整数的最小花费. \(0\le n \le 10^4, 0\le L, ...
- bzoj4427【Nwerc2015】Cleaning Pipes清理管道
题目描述 Linköping有一个相当复杂的水资源运输系统.在Linköping周围的出水点有一些水井.这些水通过管道输送到其它地点.每条管道是从某一个水井到城市的某个位置的直线管道. 所有管道在地下 ...
- 【CodeChef-SPCLN】Cleaning the Space
https://odzkskevi.qnssl.com/7dfb262544887eff6fb35bfb444759d6?v=1502084197 做法是类似于最大割之类的东西,把每个碎片按照按钮拆点 ...
- poj2376 Cleaning Shifts【线段树】【DP】
Cleaning Shifts Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 32561 Accepted: 7972 ...
- POJ2376 Cleaning Shifts 【贪心】
Cleaning Shifts Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11542 Accepted: 3004 ...
- 【BZOJ1672】[Usaco2005 Dec]Cleaning Shifts 清理牛棚 动态规划
[BZOJ1672][Usaco2005 Dec]Cleaning Shifts Description Farmer John's cows, pampered since birth, have ...
随机推荐
- moby、docker-ce与docker-ee的区别
近期研究docker相关技术,发现官网分为moby.docker-ce与docker-ee不同板块,ce和ee版本好理解,但2017年开始又多出个Moby,开始有点凌乱,Google出如下解释,mar ...
- [转帖]天津飞腾回应处理器造假 没有采用ARM的内核,内核自主设计
天津飞腾回应处理器造假没有采用ARM的内核,内核自主设计 ... https://www.expreview.com/63233.html 看了下 同意孟宪瑞老师的关系 飞腾 的确改动了 ARM的架构 ...
- sql server查询数据库连接数
设置最大连接数 下面的T-SQL 语句可以配置SQL Server 允许的并发用户连接的最大数目. exec sp_configure 'show advanced options', 1exec s ...
- linux 在线安装jdk
1. yum -y list java* 2.yum -y install java-1.8.0-openjdk*
- Kick Start 2019 Round A Contention
$\DeclareMathOperator*{\argmax}{arg\,max}$ 题目链接 题目大意 一排 $N$ 个座位,从左到右编号 $1$ 到 $N$ . 有 $Q$ 个预定座位的请求,第 ...
- spring依赖注入三种方式
一.构造器注入 构造器注入是在程序中实现构造器,可以注入任意类型,如自定义类,集合,String等,注:构造器所有有final修饰的变量都必须在构造方法中注入. 二.设值注入(setter方式注入) ...
- Html table 插入图像填充整个单元格
把image的display属性设置为block就可以了
- Yii2.0中使用Union查询,并使用join,支持分页
$query1 = Class1::find()->where($where); $query2 = Class1::find()->alias('a')->join('left j ...
- Collection接口的子接口——Set接口
https://docs.oracle.com/javase/8/docs/api/java/util/Set.html public interface Set<E> extends ...
- JVM - Java虚拟机规范官方文档
Java虚拟机规范官方文档