基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题
 收藏
 关注
X轴上有N条线段,每条线段有1个起点S和终点E。最多能够选出多少条互不重叠的线段。(注:起点或终点重叠,不算重叠)。

例如:[1 5][2 3][3 6],可以选[2 3][3 6],这2条线段互不重叠。
Input
第1行:1个数N,线段的数量(2 <= N <= 10000)
第2 - N + 1行:每行2个数,线段的起点和终点(-10^9 <= S,E <= 10^9)
Output
输出最多可以选择的线段数量。
Input示例
3
1 5
2 3
3 6
Output示例
2

典型的贪心问题,操作是先让所有的线段按照末尾点的大小从小到大排序,然后如果排在后面的线段的前一端点大于前面线段的后端点则计数

看代码:

#include<iostream>
#include<vector>
#include<cstdio>
#include<algorithm>
#include<utility>
#include<string.h>
using namespace std;
vector<pair<int,int> >vec; bool cmp(const pair<int,int>a,const pair<int,int>b)
{
return a.second<b.second;
} int main()
{
int n;
int a,b;
int cnt=1;
cin>>n;
while(n--)
{
cin>>a>>b;
vec.push_back(make_pair(a,b));
//cout<<vec.size();
}
sort(vec.begin(),vec.end(),cmp);
vector<pair<int,int> >::iterator it;
it=vec.begin();
int tmp=(*it).second;
it++;
for(;it!=vec.end();it++)
{
if((*it).first>=tmp)
{
cnt++;
tmp=(*it).second; } }
cout<<cnt<<endl; return 0;
}

51nod 1133 不重叠的线段(贪心)的更多相关文章

  1. 51nod 1133 不重叠的线段 (贪心,序列上的区间问题)

    题意: 最多能选几条不重叠的线段 思路: 按R从小到大排序,维护一个最大的右端点 右端点最小的那个线段是必选的,可以贪心地证明 代码: #include<iostream> #includ ...

  2. 51nod 1133 不重叠的线段【贪心/区间覆盖】

    1133 不重叠的线段 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 X轴上有N条线段,每条线段有1个起点S和终点E.最多能够选出多少条互不重叠的 ...

  3. 51NOD 1133 不重叠的线段

    1133 不重叠的线段   X轴上有N条线段,每条线段有1个起点S和终点E.最多能够选出多少条互不重叠的线段.(注:起点或终点重叠,不算重叠).   例如:[1 5][2 3][3 6],可以选[2 ...

  4. 51Nod 1133 不重叠的线段 | 典型贪心

    Input示例 3 1 5 2 3 3 6 Output示例 2 题意:给出n条一维线段,求不重合的最多线段数. 解析:这个是典型的贪心算法的区间问题. 贪心策略:每次取尽可能短的区间,而且保证相互之 ...

  5. 51 Nod 1133 不重叠的线段 (贪心算法)

    原题链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1133 题目分析:感觉这到第不应该被分到二级算法题,比 109 ...

  6. 51nod 1364 最大字典序排列(线段树)

    1364 最大字典序排列基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 给出一个1至N的排列,允许你做不超过K次操作,每次操作可以将相邻的两个数交换,问能够得到的字 ...

  7. 51Nod 不重叠的线段(贪心)

    X轴上有N条线段,每条线段有1个起点S和终点E.最多能够选出多少条互不重叠的线段.(注:起点或终点重叠,不算重叠). 例如:[1 5][2 3][3 6],可以选[2 3][3 6],这2条线段互不重 ...

  8. 不重叠的线段 51nod

    链接 [http://www.51nod.com/onlineJudge/questionCode.html#problemId=1133&noticeId=468024] 题意 X轴上有N条 ...

  9. 51nod 1133【贪心】

    思路: 按照终点升序,然后遍历一下就好了: #include <bits/stdc++.h> using namespace std; typedef long long LL; cons ...

随机推荐

  1. android多个fragment返回键层层返回

    在FragmentActivity的fragment跳转的时候加入到执行栈. public void switchFrag(BaseFragment to) { getSupportFragmentM ...

  2. [CSAPP]Bufbomb实验报告

    Bufbomb实验报告 实验分析: level 0-3从test開始制运行,通过函数getbuf向外界读取一串内容(buf). Level 4 是通过參数-n,程序运行testn函数,调用getbuf ...

  3. for循环console输出结果的问题

    我想定时打印出一串数字,写好了如下代码 for (var i = 0; i < 5; i++) {   setTimeout(function () {     console.log(i); ...

  4. HDU 4277 USACO ORZ(暴力+双向枚举)

    USACO ORZ Time Limit: 5000/1500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  5. 3.myeclipse 8.5 m1 注册码

    为了能在eclipse 中方便的使用uml,尝试了多次安装各种uml插件未果,myeclipse 自带uml插件,但是要注册啊,要破解啊!!! user:baiduzhidaopassword:oLR ...

  6. 剑指Offer面试题11(Java版):数值的整数次方

    题目:实现函数double Power(double base,int exponent),求base的exponent次方.不得使用库函数,同一时候不须要考虑大数问题 1.自以为非常easy的解法: ...

  7. Buildroot用户指南【转】

    本文转载自:http://www.voidcn.com/blog/bytxl/article/p-4727302.html 第一章        关于Buildroot Buildroot是一个包含M ...

  8. CMake 入门实战【转】

    本文转载自:http://www.hahack.com/codes/cmake/ 什么是 CMake All problems in computer science can be solved by ...

  9. HDU2444 The Accomodation of Students —— 二分图最大匹配

    题目链接:https://vjudge.net/problem/HDU-2444 The Accomodation of Students Time Limit: 5000/1000 MS (Java ...

  10. bat文件中调用传参的问题

    https://blogs.msdn.microsoft.com/twistylittlepassagesallalike/2011/04/23/everyone-quotes-command-lin ...