题目意思:

给一些闭区间,求最少须要多少点,使得每一个区间至少一个点。

http://acm.nyist.net/JudgeOnline/problem.php?pid=891

例子输入
4
1 5
2 4
1 4
2 3
3
1 2
3 4
5 6
1
2 2
例子输出
1
3
1

题目分体:

区间贪心。我觉得区间上的贪心算法,最基本的还是排序的方式。仅仅要排序的方式合理。就能非常好的使用贪心,贪心的本质尽管是选择当前最优的解,作为全军最优解的一部分。假设排序不当回造成好的条件选择。本题仅仅给出的排序的方式。相信大家都会使用贪心的。

AC代码:

#include<iostream>

#include<algorithm>

using namespace std;

struct node{

    int r,l;

}a[101];

int cmp(node a1,node b1){//按右端点从大到小,左端点从大到小定义排序方式。

if(a1.r<b1.r) return 1;

    else if(a1.r==b1.r&&a1.l>b1.l) return 1;

    return 0;

}

int main()

{

    int n;

    while(cin>>n){

        int x,y;

        for(int i=0;i<n;i++){

            cin>>x>>y;

            a[i].l=x<y?x:y;

            a[i].r=x>y?x:y;

        }

        sort(a,a+n,cmp);

        int k=1;

        node p=a[0];

        for(int i=1;i<n;i++){

            if(p.r<a[i].l){//当前区间在下一区间左边

                p=a[i]; k++;

            }

        }

        cout<<k<<endl;

    }

    return 0;

}

nyoj891(区间上的贪心)的更多相关文章

  1. UVa 11134 (区间上的贪心) Fabled Rooks

    这道题真是WA得我心力交瘁,好讨厌的感觉啊! 简直木有写题解的心情了 题意: n×n的棋盘里,放置n个车,使得任意两车不同行且不同列,且第i个车必须放在给定的第i个矩形范围内.输出一种方案,即每个车的 ...

  2. UVA 10382 Watering Grass(区间覆盖,贪心)题解

    题意:有一块草坪,这块草坪长l 米,宽 w 米,草坪有一些喷头,每个喷头在横坐标为 p 处,每个喷头的纵坐标都是(w/2) ,并且喷头的洒水范围是一个以喷头为圆心,半径为 r 米的圆.每次最少需要打开 ...

  3. 外星人的供给站 (区间覆盖 t贪心)

    /** 区间覆盖问题 分析: 每个点可以确定两个圆心 圆心的范围形成 一个区间 在这个区间上以任意一点画圆便可将此点 包含在内 如果有两个点所确定的区间相交了 说明这两个点可以用一个圆包含在内 即用一 ...

  4. hdu 3974 线段树 将树弄到区间上

    Assign the task Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  5. UVa 10020 - Minimal coverage(区间覆盖并贪心)

    Given several segments of line (int the X axis) with coordinates [Li, Ri]. You are to choose the min ...

  6. 51nod 1672 区间交(贪心)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1672 题意: 思路:其实这就是一个经典的区间贪心问题,只需要按照左端点排 ...

  7. POJ 2376 (区间问题,贪心)

    题目链接:http://poj.org/problem?id=2376 题目大意:选择一些区间使得能够覆盖1-T中的每一个点,并且区间数最少 题目分析:这道题目很明显可以用贪心法来解决.但题目没有看起 ...

  8. UVA 10382 Watering Grass (区间覆盖,贪心)

    问题可以转化为草坪的边界被完全覆盖.这样一个圆形就换成一条线段. 贪心,从中选尽量少的线段把区间覆盖,按照把线段按左端点排序,记录一个当前已经覆盖区间的位置cur, 从左端点小于等于cur选一个右端点 ...

  9. 区间DP与贪心算法的联系(uav Cutting Sticks &amp;&amp; poj Fence Repair(堆的手工实现))

    由于,这两题有着似乎一样的解法所以将其放在一起总结比較,以达到更好的区分二者的差别所在. 一.区间DP uva的Cutting Sticks是一道典型的模板题. 题目描写叙述: 有一根长度为l的木棍, ...

随机推荐

  1. 【洛谷4396/BZOJ3236】[AHOI2013]作业(莫队+分块/树状数组/线段树)

    题目: 洛谷4396 BZOJ3236(权限) 这题似乎BZOJ上数据强一些? 分析: 这题真的是--一言难尽 发现题面里没说权值的范围,怕出锅就写了离散化.后来经过面向数据编程(以及膜神犇代码)知道 ...

  2. ACM_黯然销魂?

    黯然销魂? Time Limit: 2000/1000ms (Java/Others) Problem Description: 发神集训表现出色,决定要送他鸡翅,但是锴神决定不让他那么容易拿到,所以 ...

  3. Java中的异常注意点

    在java中 使用throw关键字抛出异常       使用throws关键字声明异常 public static void main(String[] args) throws Exception{ ...

  4. zblog插件增加后台导航栏的方法

    有时我们经常需要对插件进行设置,但是又不能让用户去做这些,那么下面的方法将会给插件增加在后台导航栏显示的功能 首先打开对应插件的文件夹,找到对应插件的  include.php  文件 将下面的代码粘 ...

  5. ansj --词性说明

    背景 Ansj 是一个开源的 Java 中文分词工具,基于中科院的 ICTCLAS 中文分词算法,比其他常用的开源分词工具(如mmseg4j)的分词准确率更高.工具支持词性标注,所以就可以依据词性进行 ...

  6. Less文件的建立

    1.打开DreamWeaver 2.选择 新建 Less       文件名为.less,保存于Less文件夹中 3.声明文档头:@charset "utf-8"; 4.将Less ...

  7. Android 从服务器获取时间戳转换为年月日

    用JAVA相关类转换.代码如下: Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(NumberUtils.ge ...

  8. Ajax——异步基础知识(二)

    XML数据格式 首行必须是版本号和格式等信息 <?xml version="1.0" encoding="utf-8" ?> 最外层需要一个根节点进 ...

  9. dotnetnuke 获得List 属性

    new DotNetNuke.Common.Lists.ListController().GetListEntryInfo("DataType","Text") ...

  10. 几种fullpage用法及demo

    jQuery全屏滚动插件fullPage.js https://github.com/alvarotrigo/fullPage.js http://www.dowebok.com/77.html 全屏 ...