• Alyona and copybooks


    题目连接

    题意:

    给 n,a,b,c四个数,n为已有的书的数目,问再买k本书所需花费最少是多少,(k+n)%4==0;

    有三种套餐

    第一种只有一本书,花费a

    第二种有两本书,花费b,

    第三种有三本书,花费c.

    暴力,n,k只有四种情况:n=0,k=0;   n=1,k=3;    n=2,k=2;    n=3,k=1;

    n=0时,不用买;

    n=1时,有三种买法可以可能出现最优解:3*a;    a+b;   c;

    n=2时,有三种买法可以可能出现最优解: 2*a;  b;   2*c;

    n=3时,有三种买法可以可能出现最优解: a; b+c;   3*c;

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<cmath>
     5 #include<algorithm>
     6 #include<map>
     7 #include<vector>
     8 #include<set>
     9 #define ll long long
    10 using namespace std;
    11 const ll N=1e9+10;
    12 int main()
    13 {
    14     ll n,a,b,c,d,ans;
    15     while(~scanf("%lld%lld%lld%lld",&n,&a,&b,&c))
    16     {
    17         ans=1e12;
    18         n=n%4;
    19         //cout<<n<<endl;
    20         if(n==1)
    21         {
    22             ans=min(3*a,ans);
    23             ans=min(a+b,ans);
    24             ans=min(c,ans);
    25         }
    26         else if(n==2)
    27         {
    28             ans=min(2*a,ans);
    29             ans=min(b,ans);
    30             ans=min(2*c,ans);
    31         }
    32         else if(n==3)
    33         {
    34             ans=min(a,ans);
    35             ans=min(b+c,ans);
    36             ans=min(3*c,ans);
    37         }
    38         else
    39         ans=0;
    40         printf("%lld
    ",ans);
    41     }
    42     return 0;
    43 }
  • 相关阅读:
    Codeforces956D. Contact ATC
    一道题14
    扰动法--*BZOJ3157: 国王奇遇记
    一道题13
    不是一道题
    一道题12
    *Codeforces891E. Lust
    二次剩余详解
    BZOJ3994: [SDOI2015]约数个数和
    *Codeforces961G. Partitions
  • 原文地址:https://www.cnblogs.com/WHLdbk/p/6099570.html
Copyright © 2020-2023  润新知