zoukankan      html  css  js  c++  java
  • POJ 1716 Integer Intervals#贪心

    (~ ̄▽ ̄)~*

    //求一个集合,这个集合与任意一个区间的交集,需至少有两个数字
    //贪心过程:按n个区间的最右值从小到大对区间进行排列,
    //集合首先取第一个区间的最右两个数字,
    //到第二个区间,判断集合里的数有没有在区间里
    //没有的话,就从第二个区间的最右开始往左取(cnt=0取最后两个数,cnt=1取最后一个数)
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<vector>
    using namespace std;
    
    struct interval
    {
        int l,r;
    }a[10005];
    
    bool cmp(interval a,interval b)
    {
        return a.r<b.r;
    }
    
    int main()
    {
        int n,res=0;
    
        scanf("%d",&n);
        for(int i=0;i<n;i++)
            scanf("%d %d",&a[i].l,&a[i].r);
        sort(a,a+n,cmp);
    
        vector<int> Set;
        Set.push_back(a[0].r-1);
        Set.push_back(a[0].r);
        res=2;
        for(int i=1;i<n;i++)
        {
            int cnt=0;
            for(int j=0;j<Set.size();j++)
            {
                if(Set[j]>=a[i].l&&Set[j]<=a[i].r)
                    cnt++;
    
            }
            if(cnt==0)
            {
                Set.push_back(a[i].r-1);
                Set.push_back(a[i].r);
                res+=2;
            }
            else if(cnt==1)
            {
                Set.push_back(a[i].r);
                res++;
            }
        }
        printf("%d
    ",res);
        return 0;
    }
  • 相关阅读:
    爬取校园新闻首页的新闻
    网络爬虫基础练习
    综合练习:词频统计
    免费的论文查重网站
    Hadoop综合大作业
    理解MapReduce
    熟悉常用的HBase操作
    熟悉常用的HDFS操作
    爬虫大作业
    数据结构化与保存
  • 原文地址:https://www.cnblogs.com/atmacmer/p/5216422.html
Copyright © 2011-2022 走看看