zoukankan      html  css  js  c++  java
  • Atcoder AGC 019 A,B

    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

    • 1Q,H,S,D108
    • 1N109
    • 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

    20 30 70 90
    3
    

    Sample Output 1

    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

    10000 1000 100 10
    1
    

    Sample Output 2

    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

    10 100 1000 10000
    1
    

    Sample Output 3

    40
    

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


    Sample Input 4

    12345678 87654321 12345678 87654321
    123456789
    

    Sample Output 4

    1524157763907942
    
        #include <iostream>
        #include <algorithm>
        #include <cstring>
        #include <cstdio>
        #include <vector>
        #include <queue>
        #include <stack>
        #include <cstdlib>
        #include <iomanip>
        #include <cmath>
        #include <cassert>
        #include <ctime>
        #include <map>
        #include <set>
        using namespace std;
        #define lowbit(x) (x&(-x))
        #define max(x,y) (x>=y?x:y)
        #define min(x,y) (x<=y?x:y)
        #define MAX 100000000000000000
        #define MOD 1000000007
        #define pi acos(-1.0)
        #define ei exp(1)
        #define PI 3.141592653589793238462
        #define ios() ios::sync_with_stdio(false)
        #define INF 1044266558
        #define mem(a) (memset(a,0,sizeof(a)))
        typedef long long ll;
        ll a[5],n;
        int main()
        {
            while(scanf("%lld%lld%lld%lld",&a[0],&a[1],&a[2],&a[3])!=EOF)
            {
                scanf("%lld",&n);
                for(int i=1;i<4;i++) a[i]=min(a[i],2*a[i-1]);
                printf("%lld
    ",n/2*a[3]+(n&1)*a[2]);
            }
            return 0;
        }

    B - Reverse and Compare


    Time limit : 2sec / Memory limit : 256MB

    Score : 500 points

    Problem Statement

    You have a string A=A1A2An consisting of lowercase English letters.

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

    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

    aatt
    

    Sample Output 1

    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

    xxxxxxxxxx
    

    Sample Output 2

    1
    

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


    Sample Input 3

    abracadabra
    

    Sample Output 3

    44
    预处理。
        #include <iostream>
        #include <algorithm>
        #include <cstring>
        #include <cstdio>
        #include <vector>
        #include <queue>
        #include <stack>
        #include <cstdlib>
        #include <iomanip>
        #include <cmath>
        #include <cassert>
        #include <ctime>
        #include <map>
        #include <set>
        using namespace std;
        #define lowbit(x) (x&(-x))
        #define max(x,y) (x>=y?x:y)
        #define min(x,y) (x<=y?x:y)
        #define MAX 100000000000000000
        #define MOD 1000000007
        #define pi acos(-1.0)
        #define ei exp(1)
        #define PI 3.141592653589793238462
        #define ios() ios::sync_with_stdio(false)
        #define INF 1044266558
        #define mem(a) (memset(a,0,sizeof(a)))
        typedef long long ll;
        ll a[200005][30],ans;
        char s[200005];
        int main()
        {
            while(scanf("%s",s+1)!=EOF)
            {
                memset(a,0,sizeof(a));
                int len=strlen(s+1);
                ans=0;
                for(int i=1;i<=len;i++)
                {
                    for(int j=0;j<26;j++)
                        a[i][j]=a[i-1][j];
                    a[i][s[i]-'a']++;
                }
                for(int i=1;i<=len;i++)
                    ans+=len-i-a[len][s[i]-'a']+a[i][s[i]-'a'];
                printf("%lld
    ",ans+1);
            }
            return 0;
        }
  • 相关阅读:
    atitit.nfc 身份证 银行卡 芯片卡 解决方案 attilax总结
    atitit.php 流行框架 前三甲为:Laravel、Phalcon、Symfony2 attilax 总结
    Atitit.执行cmd 命令行 php
    Atitit. 图像处理jpg图片的压缩 清理垃圾图片 java版本
    atitit。企业组织与软件工程的策略 战略 趋势 原则 attilax 大总结
    atitit. 管理哲学 大毁灭 如何防止企业的自我毁灭
    Atitit.java的浏览器插件技术 Applet japplet attilax总结
    Atitit.jquery 版本新特性attilax总结
    Atitit. 软件开发中的管理哲学一个伟大的事业必然是过程导向为主 过程导向 vs 结果导向
    (转)获取手机的IMEI号
  • 原文地址:https://www.cnblogs.com/shinianhuanniyijuhaojiubujian/p/7447986.html
Copyright © 2011-2022 走看看