题目链接:http://begin.lydsy.com/JudgeOnline/problem.php?id=1324

题意:

  给你n个区间,问你最多能选择多少个区间使得它们不相互覆盖。

题解:

  RQNOJ 569 Milking Time中,每个线段有权值,所以要用dp。

  而这道题问的是最多区间数,只是数量,对于每一个区间都一样。所以可以贪心。

  贪心目标:

    为了让总区间数最多,所以应该让某一段范围内的区间数最多。

  贪心策略:

    (1)对于当前已覆盖范围(0,pos),再选一个区间时,在保证能放的前提下,应让这个区间的rig最小。

    (2)对于当前已覆盖范围(0,pos),最后一次选的区间的lef应尽可能大。

    所以只用考虑rig不同,lef最大的区间。挑出来再贪心。

AC Code:

 #include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <vector>
#define MAX_N 50005 using namespace std; struct Cow
{
int lef;
int rig;
Cow(int _lef,int _rig)
{
lef=_lef;
rig=_rig;
}
Cow(){}
void read_cow()
{
cin>>lef>>rig;
}
friend bool operator < (const Cow &a,const Cow &b)
{
return a.rig!=b.rig?a.rig<b.rig:a.lef>b.lef;
}
}; int n;
Cow cow[MAX_N];
vector<Cow> v; int main()
{
cin>>n;
for(int i=;i<n;i++)
{
cow[i].read_cow();
}
sort(cow,cow+n);
for(int i=;i<n;i++)
{
if(i== || cow[i].rig!=cow[i-].rig)
{
v.push_back(cow[i]);
}
}
int pos=;
int ans=;
for(int i=;i<v.size();i++)
{
Cow now=v[i];
if(now.lef>=pos)
{
pos=now.rig;
ans++;
}
}
cout<<ans<<endl;
}

BZOJ 3410 [Usaco2009 Dec]Selfish Grazing 自私的食草者:贪心【最多线段覆盖】的更多相关文章

  1. BZOJ 3410: [Usaco2009 Dec]Selfish Grazing 自私的食草者(贪心)

    这= =,就是线段覆盖对了= =直接贪心就行了= = CODE: #include<cstdio>#include<iostream>#include<cstring&g ...

  2. 3410: [Usaco2009 Dec]Selfish Grazing 自私的食草者

    3410: [Usaco2009 Dec]Selfish Grazing 自私的食草者 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 71  Solve ...

  3. 【BZOJ】3410: [Usaco2009 Dec]Selfish Grazing 自私的食草者(贪心)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3410 太神了.... 按末端点排序然后贪心取即可. QAQ #include <cstdio& ...

  4. BZOJ3410: [Usaco2009 Dec]Selfish Grazing 自私的食草者

    3410: [Usaco2009 Dec]Selfish Grazing 自私的食草者 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 47  Solve ...

  5. 【贪心大水题】BZOJ3410-[Usaco2009 Dec]Selfish Grazing 自私的食草者

    [题目大意] 给出n个区间,问最多选取多少个区间使得它们互相不重叠. [思路] 水题quq改善心情用.按照右端点大小排序,每次更新上一次的右端点,如果当前左端点大于上次右端点可取. #include& ...

  6. BZOJ 3412: [Usaco2009 Dec]Music Notes乐谱(离线处理)

    这道题貌似怎么写都可以吧= =,我先读入询问然后从小到大处理就行了= = PS:水水题真的好!无!聊!但是好!欢!乐! CODE: #include<cstdio>#include< ...

  7. [bzoj 1774][Usaco2009 Dec]Toll 过路费

    题目描述 跟所有人一样,农夫约翰以着宁教我负天下牛,休叫天下牛负我的伟大精神,日日夜夜苦思生 财之道.为了发财,他设置了一系列的规章制度,使得任何一只奶牛在农场中的道路行走,都 要向农夫约翰上交过路费 ...

  8. bzoj 1774: [Usaco2009 Dec]Toll 过路费 ——(改)floyd

    Description 跟所有人一样,农夫约翰以着宁教我负天下牛,休叫天下牛负我的伟大精神,日日夜夜苦思生 财之道.为了发财,他设置了一系列的规章制度,使得任何一只奶牛在农场中的道路行走,都 要向农夫 ...

  9. BZOJ——3412: [Usaco2009 Dec]Music Notes乐谱

    http://www.lydsy.com/JudgeOnline/problem.php?id=3412 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit:  ...

随机推荐

  1. js 原生方法获取所有兄弟节点

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  2. 实用国际(XX)计量单位表

    很多实用附录简表:http://www.zdic.net/appendix/f1.htm 计量单位简表 时间的单位换算 : 1秒=1000毫秒(ms) 1毫秒=1/1,000秒(s)  1秒=1,00 ...

  3. Linux禁止Ctrl+Alt+Del重新启动

    方法1:改动/etc/inittab 屏蔽 ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now 或者删除改行内容 保存退出 适用对象:RedHat4.8 ...

  4. 1-3:CSS3课程入门之伪类和伪元素

    E:target 表示当前的URL片段的元素类型,这个元素必须是E E:disabled 表示不可点击的表单控件 E:enabled 表示可点击的表单控件 E:checked 表示已选中的checkb ...

  5. 2_Jsp标签_传统标签功能简介

    1传统标签接口关系:                                   2功能简介                                                   ...

  6. 成长型思维模式Not yet

    当做一件事失败了,要告诉他 暂未成功,暂时没有成功,继续努力,下次就有可能成功. 不及格,暂未及格  是两种思维模式,成长性的思维方式得到的是一个是努力型的人格

  7. 基于zookeeper或redis实现分布式锁

    前言 在分布式系统中,分布式锁是为了解决多实例之间的同步问题.例如master选举,能够获取分布式锁的就是master,获取失败的就是slave.又或者能够获取锁的实例能够完成特定的操作. 目前比较常 ...

  8. 总是想把Linux服务器上的重要文件备份到本地,在此转一篇实现windows和linux互传文件的文章

    尝试从windows xp向ubuntu11.10传文件 ubuntu使用的是ssh windows使用的是putty和其附带的pscp 首先配置ubuntu: 1.先使用netstat -tl或se ...

  9. Eclipse + JDK + tomcat开发环境配置

       第一步:下载jdk和tomcat:JDK下载  Tomcat下载     最新的jdk为1.6.10,tomcat为6.0,建议jdk1.4以上,tomcat4.0以上    第二步:安装和配置 ...

  10. sed相关

    1 global flag sed 's/xxx/xxx/' inputfile,如果没有带global flag g的话,匹配替换的只是inputfile中的每一行的第一个匹配项.如果带了g的话,才 ...