zoukankan      html  css  js  c++  java
  • Lost Cows POJ

    Code:

    #include<cstdio>
    #include<stack>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    const int maxn = 100000 + 233;
    int n, C[maxn], height[maxn];
    stack<int>S;
    inline int lowbit(int t) { return t & (-t);}
    inline void update(int x, int delta)
    {
        while(x <= n) C[x] += delta, x += lowbit(x);
    }
    inline int query(int x)
    {
        int sum = 0;
        while(x > 0) sum += C[x], x -=lowbit(x);
        return sum;
    }
    int main()
    {
        scanf("%d",&n);
        height[1] = 0;
        for(int i = 2;i <= n; ++i) scanf("%d",&height[i]);
        for(int i = 1;i <= n; ++i) update(i, 1);
        for(int i = n;i >= 1; --i)
        {
            int l = 1, r = n, ans = 0;
            while(l <= r)
            {
                int mid = (l + r) >> 1;
                if(query(mid) >= height[i] + 1) ans = mid, r = mid - 1;
                else l = mid + 1;
            }
            update(ans, -1);
            S.push(ans);
        }
        while(!S.empty()) {printf("%d
    ",S.top()); S.pop();}
        return 0;
    }
    
  • 相关阅读:
    BZOJ2023: [Usaco2005 Nov]Ant Counting 数蚂蚁
    BZOJ2044: 三维导弹拦截
    BZOJ2982: combination
    Solidity(address的四个方法)
    Solidity基础
    如何搭建以太坊的私有链
    挖矿
    智能合约
    密码学
    比特币
  • 原文地址:https://www.cnblogs.com/guangheli/p/9845133.html
Copyright © 2011-2022 走看看