题目链接: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. 微信小程序 - 关闭当前页面无法再通过左上角返回

    考试的时候不可能答完以后,得到成绩后再通过左上角返回再重新答吧? 可以通过:open-type='redirectTo'实现

  2. 每天学点Python之bytes

    每天学点Python之bytes Python中的字节码用b'xxx'的形式表示.x能够用字符表示,也能够用ASCII编码形式\xnn表示.nn从00-ff(十六进制)共256种字符. 基本操作 以下 ...

  3. React学习之事件绑定

    React事件绑定有主要有三种方式 第一种官方推荐方式: class LoginControl extends React.Component {   constructor(props) {     ...

  4. iReport+jasperreport创建子表的几种方式(1)

    在制作报表的过程中,子表是不可缺少的.今天就研究了一下制作子表的几种方式 一.连接数据库创建子表 以MySQL为例: 我的数据源数据库中的表 watermark/2/text/aHR0cDovL2Js ...

  5. 字符串== equals

    经常碰到比较字符串的题, eg: public class StringDemo{ private static final String MESSAGE = "taobao"; ...

  6. sphinx PDF 中文

    使用reST撰写文档时,需要分多个文档时,就必须使用sphinx了,sphinx说起来很简单的,但是默认是不是支持中文的.幸好我出生的晚,sphinx现在已经支持xelatex了^_^ 安装 除了pa ...

  7. scrollview gridview

    package com.fangdamai.salewinner.ui.customer; import android.content.Context;import android.content. ...

  8. 【转】cmd chcp命令切换字符格式

    cmd chcp命令切换字符格式   命令介绍:   chcp 65001   #换成utf-8代码页   chcp 936       #换成默认的gbk   chcp 437       #美国英 ...

  9. 复习Java虚拟机:JVM中的Stack和Heap

    在JVM中,内存分为两个部分,Stack(栈)和Heap(堆).这里,我们从JVM的内存管理原理的角度来认识Stack和Heap,并通过这些原理认清Java中静态方法和静态属性的问题. 一般,JVM的 ...

  10. PHP基础函数手记

    PHP常用函数总结(180多个):http://www.jb51.net/article/101179.htm PHP常用函数归类总结[大全]:http://blog.csdn.net/ty_hf/a ...