codeforces#236_div2_A nuts 贪心

题目地址:cf#236_div2_A

题目大意:

给你四个数

k,a,b,v;      k代表每个隔间最多不能超过的数目  ,a是果子个数,b是有多少隔板数量,v是一个隔板最多能装多少

现在问你,要把所有nuts放进去,最少需要多少boxes

简单的贪心,我们用这些隔板去装配boxes,看b能分成多少个k-1 份,每一个box就是k*v这么大的容量。

然后多余的b%(k-1) 个给最后一个box 

其余的box都是v

然后b慢慢减


代码:

#include<iostream>
#include<vector>

using  namespace std;


vector<int>  size;

int main()
{
    int  k,a,b,v;
    cin>>k>>a>>b>>v;
    for(int i=0;i<b/(k-1);i++)
        size.push_back(k*v);
    
    size.push_back((b%(k-1)+1)*v);
    
    for(int i=0;i<1000;i++)
        size.push_back(v);
    
    int ans=0;
   
    
    for(int i=0;i<1000;i++)
    {
       if(a<=size[i])
       {
           ans++;
           break;
       }
        else
        {
            a-=size[i];
            ans++;
        }
    }
    
    cout<<ans<<endl;
    
}




posted on 2014-03-17 02:21  814jingqi的ACM  阅读(143)  评论(0编辑  收藏  举报