zoukankan      html  css  js  c++  java
  • AtCoder Grand Contest 019

    A - Ice Tea Store


    Time limit : 2sec / Memory limit : 256MB

    Score : 300 points

    Problem Statement

    You've come to your favorite store Infinitesco to buy some ice tea.

    The store sells ice tea in bottles of different volumes at different costs. Specifically, a 0.25-liter bottle costs Q yen, a 0.5-liter bottle costs H yen, a 1-liter bottle costs S yen, and a 2-liter bottle costs D yen. The store has an infinite supply of bottles of each type.

    You want to buy exactly N liters of ice tea. How many yen do you have to spend?

    Constraints

    • 1≤Q,H,S,D≤108
    • 1≤N≤109
    • All input values are integers.

    Input

    Input is given from Standard Input in the following format:

    Q H S D
    N
    

    Output

    Print the smallest number of yen you have to spend to buy exactly N liters of ice tea.


    Sample Input 1

    Copy
    20 30 70 90
    3
    

    Sample Output 1

    Copy
    150
    

    Buy one 2-liter bottle and two 0.5-liter bottles. You'll get 3 liters for 90+30+30=150 yen.


    Sample Input 2

    Copy
    10000 1000 100 10
    1
    

    Sample Output 2

    Copy
    100
    

    Even though a 2-liter bottle costs just 10 yen, you need only 1 liter. Thus, you have to buy a 1-liter bottle for 100 yen.


    Sample Input 3

    Copy
    10 100 1000 10000
    1
    

    Sample Output 3

    Copy
    40
    

    Now it's better to buy four 0.25-liter bottles for 10+10+10+10=40 yen.


    Sample Input 4

    Copy
    12345678 87654321 12345678 87654321
    123456789
    

    Sample Output 4

    Copy
    1524157763907942

    贪心的问题,算是在背包吧,这个包不能满,所以wa了一发

    AC代码

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int q,h,s,d;
        int n;
        cin>>q>>h>>s>>d;
        cin>>n;
        q*=8,h*=4,s*=2;
        int mi=min(q,h);
        mi=min(mi,s);
        int mi2=min(mi,d);
        long long sum=1LL*n/2*mi2;
        if(n&1)sum+=mi/2;
        cout<<sum<<endl;
        return 0;
    }

    B - Reverse and Compare


    Time limit : 2sec / Memory limit : 256MB

    Score : 500 points

    Problem Statement

    You have a string A=A1A2…An consisting of lowercase English letters.

    You can choose any two indices i and j such that 1≤ijn and reverse substring AiAi+1…Aj.

    You can perform this operation at most once.

    How many different strings can you obtain?

    Constraints

    • 1≤|A|≤200,000
    • A consists of lowercase English letters.

    Input

    Input is given from Standard Input in the following format:

    A
    

    Output

    Print the number of different strings you can obtain by reversing any substring in A at most once.


    Sample Input 1

    Copy
    aatt
    

    Sample Output 1

    Copy
    5
    

    You can obtain aatt (don't do anything), atat (reverse A[2..3]), atta (reverse A[2..4]), ttaa (reverse A[1..4]) and taat (reverse A[1..3]).


    Sample Input 2

    Copy
    xxxxxxxxxx
    

    Sample Output 2

    Copy
    1
    

    Whatever substring you reverse, you'll always get xxxxxxxxxx.


    Sample Input 3

    Copy
    abracadabra
    

    Sample Output 3

    Copy
    44

    一个字符串反转其中n个字符,问有多少种形式

    #include <bits/stdc++.h>
    using namespace std;
    char s[200005];
    int a[256];
    int main()
    {
        scanf("%s",s);
        int l=strlen(s);
        long long ans=1;
        for(int i=0;i<l;i++)
        ans+=i-a[s[i]],a[s[i]]++;
        cout<<ans;
        return 0;
    }
    #include <bits/stdc++.h>
    using namespace std;
    char s[200005];
    int main()
    {
        scanf("%s",s);
        long long ans=1;
        int l=strlen(s);
        sort(s,s+l);
        for(int i=0;i<l;)
        {
            int t=upper_bound(s+i+1,s+l,s[i])-s;
            if(t==l)break;
            ans+=1LL*(t-i)*(l-t);
            i=t;
        }
        cout<<ans;
        retur
  • 相关阅读:
    SQVI和SAP查询QUERY的区别和使用注意事项
    hdu 4119 Isabella's Message
    HaProxy+Keepalived+Mycat高可用群集配置
    Android之RecyclerView简单使用(三)
    2.CCGridAction(3D效果),3D反转特效,凸透镜特效,液体特效,3D翻页特效,水波纹特效,3D晃动的特效,扭曲旋转特效,波动特效,3D波动特效
    怎样cp文件夹时忽略指定的文件夹和文件
    使用boost::property_tree生成带attribute的xml
    数据结构:中序线索二叉树
    像音乐播放App一样移动背景
    【EasyUi】页面设计必学之Layout
  • 原文地址:https://www.cnblogs.com/BobHuang/p/7441552.html
Copyright © 2011-2022 走看看