zoukankan      html  css  js  c++  java
  • codeforces 54A

    题意:收到礼物的规则为每个假日必收到一份礼物,每K天里至少收到一份礼物,求出N天中收到的礼物的最小数量。

    思路:将N天根据假日所在天数分为一段段,当假日与假日之间间隔天数hol[i]>-hol[i-1]-1>=k时,这段间隔内还至少收到(hol[i]>-hol[i-1]-1)/k份礼物。注意第一个假日与第一天求解,最后一个假日与最后一天求解。

    #include<iostream>
    #include<cstring>
    int hol[400];
    using namespace std;
    int main()
    {
        int n,k,c;
        while(cin>>n>>k)
        {
            memset(hol,0,sizeof(hol));
            cin>>c;
            int sum=0;
            sum+=c;
            if(c!=0)
            {
                cin>>hol[0];
                if(hol[0]-1>=k)
                {
                    sum+=(hol[0]-1)/k;
                }
                for(int i=1;i<c;i++)
                {
                    cin>>hol[i];
                    if(hol[i]-hol[i-1]-1>=k)
                    {
                        sum+=(hol[i]-hol[i-1]-1)/k;
                    }
                }
                if(n-hol[c-1]>=k)
                {
                    sum+=(n-hol[c-1])/k;
                }
            }
            else   //没有假日的情况
            {
                    sum+=n/k;    
            }
            cout<<sum<<endl;
        } 
        
        return 0;
    } 
  • 相关阅读:
    APP高级抓包
    Linux使用日志
    ffmpeg使用记录
    win7 远程连接ubuntu
    v-2-r-a-y使用
    adb
    golang mysql 模糊查询
    交互式批量删除指定目录下指定类型文件
    golang打包和部署到centos7
    Nginx unknown directive ""
  • 原文地址:https://www.cnblogs.com/LinesYao/p/5451404.html
Copyright © 2011-2022 走看看