zoukankan      html  css  js  c++  java
  • [USACO 2017DEC] Greedy Gift Takers

    [题目链接]

             https://www.lydsy.com/JudgeOnline/problem.php?id=5139

    [算法]

            二分答案

            时间复杂度 : O(NlogN^2)

    [代码]

            

    #include<bits/stdc++.h>
    using namespace std;
    const int MAXN = 1e5 + 10;
    
    int n;
    int a[MAXN] , b[MAXN];
     
    template <typename T> inline void chkmax(T &x,T y) { x = max(x,y); }
    template <typename T> inline void chkmin(T &x,T y) { x = min(x,y); }
    template <typename T> inline void read(T &x)
    {
        T f = 1; x = 0;
        char c = getchar();
        for (; !isdigit(c); c = getchar()) if (c == '-') f = -f;
        for (; isdigit(c); c = getchar()) x = (x << 3) + (x << 1) + c - '0';
        x *= f;
    }
    inline bool check(int x)
    {
            for (int i = 1; i < x; i++) b[i] = a[i];
            sort(b + 1,b + x);
            int limit = n - x;
            for (int i = 1; i < x; i++)
            {
                    if (b[i] > limit) return false;
                    ++limit;        
            }        
            return true;
    }
    
    int main()
    {
            
            read(n);
            for (int i = 1; i <= n; i++) read(a[i]);
            int l = 1 , r = n , ans = 0;
            while (l <= r)
            {
                    int mid = (l + r) >> 1;
                    if (check(mid))
                    {
                            l = mid + 1;
                            ans = mid;        
                    }    else r = mid - 1;
            }
            printf("%d
    ",n - ans);
            
            return 0;
        
    }
  • 相关阅读:
    Asp.net调用百度搜索引擎
    iOS 之 alcatraz (插件管理器)
    @dynamic、@synthesize
    iOS 准备
    iOS 沙盒
    iOS 引导页
    iOS 开发之登陆
    iOS 程序开发
    Java 验证用户名、密码
    数据库操作
  • 原文地址:https://www.cnblogs.com/evenbao/p/9794718.html
Copyright © 2011-2022 走看看