zoukankan      html  css  js  c++  java
  • 贪心+二分答案

    (贪心+整数型二分答案)

    题目常包含:“最短的最大距离”,“最大的最短距离”

    1.计网

    2.洛谷P1824进击的奶牛

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<algorithm>
    using namespace std;
    const int maxn=100007;
    const double eps=1e-8;
    int n,c;
    int x[maxn];
    int le=1,ri,mid;
    int main(){
        scanf("%d%d",&n,&c);
        for(int i=0;i<n;i++){
            scanf("%d",&x[i]);
    
        }
        sort(x,x+n);
        ri=x[n-1];
        int last=1;
        while(le<=ri){
            mid=(le+ri)/2;
            if(last==mid){
                break;
            }
            last=mid;
    
            int sum=x[0]+mid,cnt=1;
            for(int i=2;i<n;i++){
                if(sum<=x[i]){
                    cnt++;
                    sum=x[i]+mid;
                }
            }
            if(cnt<c){
                ri=mid-1;
            }
            else
                le=mid+1;
        }
        printf("%d
    ",r1);
        
    }

    3.洛谷P1316 丢瓶盖

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<algorithm>
    using namespace std;
    const int maxn=100007;
    
    int n,c;
    int x[maxn];
    int le=1,ri,mid;
    int main(){
        scanf("%d%d",&n,&c);
        for(int i=0;i<n;i++){
            scanf("%d",&x[i]);
    
        }
        sort(x,x+n);
        ri=x[n-1]-x[0];
    
        while(le<=ri){
            mid=(le+ri)/2;
            int sum=x[0]+mid,cnt=1;
            for(int i=2;i<n;i++){
                if(sum<=x[i]){
                    cnt++;
                    sum=x[i]+mid;
                }
            }
            if(cnt<c){
                ri=mid-1;
            }
            else
                le=mid+1;
        }
        printf("%d
    ",ri);
    
    }
  • 相关阅读:
    rmq +二分暴力 hdu 5726
    8.25 ccpc 比赛总结
    莫比乌斯反演题目总结
    HDU 4848 Wow! Such Conquering! (搜索+floyd)
    Codeforces 982 C Cut 'em all!(DFS)
    Codefoces 986C AND Graph(DFS)
    CodeForces 986A Fair(BFS)
    ACM经验贴
    Kattis A+B Problem(FFT)
    CF E. Porcelain (双向dp)
  • 原文地址:https://www.cnblogs.com/loganlzj/p/10182288.html
Copyright © 2011-2022 走看看