POJ_2376_Cleaning Shifts【贪心】【区间覆盖】
题目大意:
有一些奶牛,每只奶牛负责一个时间段。问覆盖完全部的时间段最少需要多少只奶牛。若不能全部覆盖,输出-1.
#include <cstdio>
#include <algorithm>
using namespace std;
typedef long long ll;
const int maxn = + ;
const int maxd = + ; struct Edge
{
int x;
int y;
}cow[maxn]; int N, T;
int X, Y; bool cmp(Edge a, Edge b)
{
if (a.x == b.x) return a.y>b.y;
return a.x<b.x;
} void input()
{
X = ; Y = ;
scanf("%d%d", &N, &T);
for (int i = ; i<N; i++)
{
scanf("%d%d", &cow[i].x, &cow[i].y);
if (cow[i].x == ) X = ;
if (cow[i].y == T) Y = ;
}
} void solve()
{
sort(cow, cow + N, cmp);
//若所有的牛的工作时间的起始时间和结束时间都没有覆盖掉区间的起始时间和结束时间
if (X == || Y == )
{
printf("-1\n");
return;
}
int ans = , End = , sum = ;
int Start = cow[].y;
int maxy = cow[].y;
while (true)
{
while (End + <N&&cow[End + ].x <= Start + ) //End代表当前点的坐标
{
End++;
if (cow[End].y>maxy)
{
maxy = cow[End].y;
}
}
if (maxy != Start) //start为当前有效区间的最远距离
{
ans++;
Start = maxy;
}
else
{
if (End == N - ) //已覆盖掉区间
{
break;
}
else //说明中间有的时间点覆盖不到
{
printf("-1\n");
return;
}
}
}
printf("%d\n", ans);
return;
} int main() {
input();
solve();
return ;
}
2018-04-01
POJ_2376_Cleaning Shifts【贪心】【区间覆盖】的更多相关文章
- 高效算法——E - 贪心-- 区间覆盖
E - 贪心-- 区间覆盖 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=85904#problem/E 解题思路: 贪心思想, ...
- 【题解】Cut the Sequence(贪心区间覆盖)
[题解]Cut the Sequence(贪心区间覆盖) POJ - 3017 题意: 给定一大堆线段,问用这些线段覆盖一个连续区间1-x的最小使用线段的数量. 题解 考虑一个这样的贪心: 先按照左端 ...
- Cleaning Shifts(区间覆盖)
/* http://acm.hdu.edu.cn/webcontest/contest_showproblem.php?pid=1019&ojid=1&cid=10 题目: 给定一个时 ...
- UVA 10382 - Watering Grass【贪心+区间覆盖问题+高精度】
UVa 10382 - Watering Grass n sprinklers are installed in a horizontal strip of grass l meters long a ...
- 南阳OJ-12-喷水装置(二)贪心+区间覆盖
题目链接: http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=12 题目大意: 有一块草坪,横向长w,纵向长为h,在它的橫向中心线上不同位置处装有 ...
- nyoj 12——喷水装置二——————【贪心-区间覆盖】
喷水装置(二) 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 有一块草坪,横向长w,纵向长为h,在它的橫向中心线上不同位置处装有n(n<=10000)个点状的 ...
- 51nod 1091 线段的重叠【贪心/区间覆盖类】
1091 线段的重叠 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注 X轴上有N条线段,每条线段包括1个起点和终点.线段的重叠是这样来算的,[10 2 ...
- UVA 10382 Watering Grass 贪心+区间覆盖问题
n sprinklers are installed in a horizontal strip of grass l meters long and w meters wide. Each spri ...
- B. Heaters 思维题 贪心 区间覆盖
B. Heaters 这个题目虽然只有1500的分数,但是我还是感觉挺思维的,我今天没有写出来,然后看了一下题解 很少做这种区间覆盖的题目,也不是很擅长,接下来讲讲我看完题解后的思路. 题目大意是:给 ...
- UVA 10020 Minimal coverage(贪心 + 区间覆盖问题)
Minimal coverage The Problem Given several segments of line (int the X axis) with coordinates [Li, ...
随机推荐
- 一种基于NTC的控温电路及软件实现
NTC(Negative Temperature Coefficient)是一种随温度上升时,电阻值呈指数关系减小的热敏电阻.应用广泛,最近我们就采用了NTC来控制加热并测温,并达到了预期的效果. 1 ...
- Confluence 6 匿名访问远程 API
Confluence 管理员可能希望为匿名用户禁用远程访问 API.这样能够避免恶意软件随意在网站进行批量修改. 希望禁用远程访问 API: 在屏幕的右上角单击 控制台按钮 ,然后选择 General ...
- Confluence 6 如何备份和恢复
如何备份 有关备份你数据库使用的命令与你使用的具体数据库有关,例如针对 PostgreSQL 数据库,备份命令为 pg_dump dbname > outfile. 你应该针对你使用的数据库不同 ...
- python 爬虫简化树状图
- Imperial roads 非严格次小生成树
cf测评姬比uva快了五倍... /* 不管这条边是不是在mst上,直接跑lca求出路径上的最大边w即可 ans=mst-w+dist(u,v) */ #include<bits/stdc++. ...
- HDU 2112 HDU Today(最短路径+map)
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- python指定分隔符来分割文件
1 import re 2 p = re.compile('AAAAAAAA',re.S) 3 f = open(r"D:\test\oldfile.txt","r&qu ...
- EntityFramework Reverse POCO Code First 反向生成器
https://marketplace.visualstudio.com/items?itemName=SimonHughes.EntityFrameworkReversePOCOGenerator ...
- 微信公众平台开发教程Java版(六) 事件处理(菜单点击/关注/取消关注)
https://blog.csdn.net/tuposky/article/details/40589325
- 通过安装memadmin对memcache进行可视化管理
https://blog.csdn.net/reblue520/article/details/70792891