zoukankan      html  css  js  c++  java
  • Cow Dance Show

    题目大意:

    经过几个月的排练,奶牛们基本准备好展出她们的年度舞蹈表演。今年她们要表演的是著名的奶牛芭蕾——“cowpelia”。

    表演唯一有待决定的是舞台的尺寸。一个大小为K的舞台可以支持K头牛同时在舞台上跳舞。在牛群中的N头牛(1<=N<=10,000)按照她们必须出现在舞蹈中的顺序方便地编号为1..N。第i头牛计划跳d[i]的特定持续时间。一开始,第1..K头牛出现在舞台上并开始跳舞。当这些牛中的某一头牛首先完成了她的部分,她会马上离开舞台并且第K+1头牛会出现在舞台上并开始跳舞。所以,舞台上总有K头奶牛在跳舞(直到表演的尾声,奶牛不够的时候)。当最后一头奶牛完成了她的舞蹈部分,表演结束,共花了T个单位时间。

    显然,K的值越大,T就越小。由于表演不能拖太长,你得知了指定T的最大可能值的上限T-max。请根据这个约束,确定K的最小值。

    ————————————————我是分割线————————————————

    这道题。。裸的二分啊,,,

    每次把时间最少的一个舞台从优先队列中拿出来,然后加上当前数组塞进去就好了,然后check一下。。

    但是注意!本题在塞得时候一定要判断一下当前值加上数组值有没有超过t_max,否则会WA。。

    虽然我不知道这是为什么,可是自己出数据后就是会挂。。

    下面贴代码

    #include<cstdio>
    #include<queue>
    #define max(a,b) ((a)>(b)?(a):(b))
    #include<vector>
    using namespace std;
    int n,t;
    int a[200005];
    int ans;
    struct cmp1{
        bool operator ()(int &a,int &b){
            return a>b;
        }
    };
    priority_queue<int,vector<int>,cmp1>q;
    bool check(int num){
        int tmp;
        for(int i=1;i<=num;i++)q.push(a[i]);
        for(int i=num+1;i<=n;i++){
        tmp=q.top();
        q.pop();
        tmp+=a[i];
        if(tmp>t)return false;
        q.push(tmp);    
        }
        tmp=0;
        for(int i=1;i<=num;i++)
        {
            int tt=q.top();
            q.pop();
        }
        return tmp<=t;
    }
    int main(){
        freopen("dance.in","r",stdin);
        freopen("dance.out","w",stdout);
        scanf("%d%d",&n,&t);
        for(int i=1;i<=n;i++)scanf("%d",&a[i]);
        int l=1,r=n;
        ans=n;
        while(l<=r){
            int mid=(l+r)>>1;
            if(check(mid))r=mid-1,ans=mid;
            else l=mid+1;
        }
        printf("%d
    ",ans);
        fclose(stdin);
        fclose(stdout);
    }
  • 相关阅读:
    .Net框架集WebClient类向WinCE平台上传文件(FTP方式)延迟15秒释疑
    WinCE系统下BootLoader的开发
    cf1154G 埃氏筛应用
    关于调用C kernel functions
    Download internal table data into Excel(比使用OLE自己填写速度要快)
    Internet+大会和Google请来的大师
    回到Mountain View
    关于F4 Help帮助窗口的参数F4METHOD的设置
    计划策略 MTS部分
    人在Google
  • 原文地址:https://www.cnblogs.com/ghostfly233/p/7050535.html
Copyright © 2011-2022 走看看