• Codeforces Round #552 (Div. 3) C题


    题目网址:http://codeforces.com/contest/1154/problem/C

    题目意思:小猫吃三种食物,A,B,C,一周吃食物的次序是,A,B,C,A,C,B,A,当小猫该天无食物可吃时,就会饿死,现给出a,b,c三个数,表示A,B,C的食物数量,

    选择一天开始,问小猫最多可以活到多少天。

    题解:首先,在一周时间,A要吃三天,B要吃两天,C要吃两天,先随便选一天开始,当剩下食物不足以撑过一周时停止,再细分剩下的食物数量,看小猫饿

    死是经过的最多天数。选择的天数用暴力写即可。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int k[10]={1,2,3,1,3,2,1};
     4 int main()
     5 {
     6     int a,b,c,flag,days=-1;
     7     cin>>a>>b>>c;
     8     int minn=min(min(a/3,b/2),c/2);
     9     a-=minn*3,b-=minn*2,c-=minn*2;
    10     minn=minn*7;
    11 //    cout<<a<<endl;cout<<b<<endl;cout<<c<<endl;
    12     for(int i=0;i<7;i++)
    13     {
    14         flag=0;
    15         int sa=a,sb=b,sc=c;
    16         for(int j=0;j<7;j++)
    17         {
    18             if(k[(i+j)%7]==1)
    19             {
    20                 if(sa==0) flag=1;
    21                 sa--;
    22             }
    23             else if(k[(i+j)%7]==2)
    24             {
    25                 if(sb==0) flag=1;
    26                 sb--;
    27             }
    28             else if(k[(i+j)%7]==3)
    29             {
    30                 if(sc==0) flag=1;
    31                 sc--;
    32             }
    33             if(flag==1) {
    34                 days=max(days,j);break;
    35             }
    36         }
    37     }
    38     cout<<days+minn<<endl;
    39 } 
    View Code
  • 相关阅读:
    一些$LCT$的瓜皮题目
    写点东西(关于背包问题)
    字符串算法总结
    常系数齐次线性递推
    原根算法与剩余定理
    问题集
    常用链接
    回形针PaperClip
    6.824拾遗
    杂项
  • 原文地址:https://www.cnblogs.com/duxing201806/p/10726493.html
Copyright © 2020-2023  润新知