zoukankan      html  css  js  c++  java
  • CF C. Maximal Intersection(贪心 || STL)

    题意

    给你N个线段(一条直线上),问删去一个之后,最长公共长度 ;

    分析:首先我们得先知道n条线段公共的线段一定是(LMAX,RMIN) ,那我们可以先排序,然后枚举删除边;

    #include<stdio.h>
    #include<algorithm>
    using namespace std;
    struct no
    {
        int l,r;
    }a[300001];
    int l[300001],r[300001];
    int main( )
    {
        int n;
        scanf("%d",&n);
        for(int i=1 ; i<=n ; i++)
        {
            scanf("%d%d",&a[i].l,&a[i].r);
            l[i]=a[i].l;r[i]=a[i].r;
        }
        sort(l+1,l+1+n);
        sort(r+1,r+1+n);
        int ans = 0;
        for(int i=1 ; i<=n ; i++)
        {
            int end=l[n];///左端点最大部分;
            int st=r[1];///右端点最小的部分
            if(end==a[i].l)/// 如果删边为最后一个左端点,左移一位
            end=l[n-1];
            if(st==a[i].r)/// 如果删边为最后一个左端点,左移一位
            st=r[2];
            ans = max(ans,st-end);
        }
        printf("%d
    ",ans);
    
    }
    View Code

    SLT 做法;

    c.begin() 返回一个迭代器,它指向容器c的第一个元素

     c.end() 返回一个迭代器,它指向容器c的最后一个元素的下一个位置

     c.rbegin() 返回一个逆序迭代器,它指向容器c的最后一个元素

     c.rend() 返回一个逆序迭代器,它指向容器c的第一个元素前面的位置

     multiset和set不同之处在于multiset可以有重复的元素。

    #include<bits/stdc++.h>
    #define maxn 300005
    using namespace std;
    multiset<int>a,b;
    int L[maxn],R[maxn];
    int main()
    {
        int n;
        cin>>n;
        for(int i=0;i<n;i++)
        {
            cin>>L[i]>>R[i];
            a.insert(L[i]);
            b.insert(R[i]);
        }
       /// cout<<-1<<endl;
        int ans=0;
        for(int i=0;i<n;i++)
        {
            a.erase(a.find(L[i]));
            b.erase(b.find(R[i]));
            ans=max(ans,*(b.begin())-*(a.rbegin()));
            a.insert(L[i]);
            b.insert(R[i]);
        }
        cout<<ans<<endl;
        return 0;
    }
    View Code
  • 相关阅读:
    Jquery 表单验证
    C#基础备忘 日期格式化
    Juqery/HTML 重置表单,Reset
    C#基础 Virtue跟New Virtue
    Jquery Easy-UI中的Tabs扩展
    DOM setTimeout() 和setInterval()用法
    ASP.NET 登录中Cookies和验证和前端Jquery
    npm更新到最新版本
    js判断是否ie浏览器或者浏览器版本
    hibernate多个主键
  • 原文地址:https://www.cnblogs.com/shuaihui520/p/9538450.html
Copyright © 2011-2022 走看看