首页 > 其他 > 详细

【codevs】【贪心】1214线段覆盖

时间:2015-07-29 22:49:31      阅读:241      评论:0      收藏:0      [点我收藏+]

  完了完了碰到线段就不会做了QAQ,看看大神的博客http://m.blog.csdn.net/blog/maverick1990/17262495

  代码这儿:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
const int maxn=110;
int n,ans=1;
struct line
{
    int l,r;
}a[110];
void work()
{
    int now=a[1].r;
    for(int i=2;i<=n;i++)//遍历下一区间 
    {
        if(a[i].l>=now)//如果当前区间的右端点不包含下一区间的左端点,就选择这个区间 
        {
            now=a[i].r;
            ans++;
        }
        else
        {
            if(a[i].r<now)//如果下一区间在当前区间内部,那么选择下一区间,不要当前区间,因为下一区间更短,方案更优 
            {
                now=a[i].r;
            }
        }
    }
    cout<<ans;
}
bool cmp(line a,line b)
{
    return a.l<b.l;
}
void read()
{
    cin>>n;
    int x,y;
    for(int i=1;i<=n;i++)
    {
        scanf("%d%d",&x,&y);
        if(x<y){a[i].l=x;a[i].r=y;}
        else{a[i].r=x;a[i].l=y;}
    }
    sort(a+1,a+n+1,cmp);
}
int main()
{
    read();
    work();
    return 0;
}

 

  

【codevs】【贪心】1214线段覆盖

原文:http://www.cnblogs.com/sajuuk/p/4687588.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!