• Codeforces Round #700 (Div. 2)


    A. Yet Another String Game

    #include<bits/stdc++.h>
    #define mem(a,b) memset(a,b,sizeof a)
    #define ll long long int 
    using namespace std;
    string s;
    int main()
    {
        int T;
        cin>>T;
        while(T--)
        {
            cin>>s;
            int flag = 1;
            for(int i=0;i<s.length();i++)
            {
                if(flag == 1)
                {
                    if(s[i]!='a')
                    {
                        cout<<"a";
                    }
                    else{
                        cout<<"b";
                    }
                    flag = 0;
                }
                else{
                    if(s[i]!='z')
                    {
                        cout<<"z";
                    }
                    else{
                        cout<<"y";
                    }
                    flag = 1;
                }
            }
            cout<<endl;
        }
    }

    B. The Great Hero

    题意:英雄打怪兽,每只怪兽有a[i]的攻击力,有b[i]点血,英雄有A攻击力,B点血,每次battle后怪兽少A点血,英雄少a[i]点血,当血量少于等于0时死亡,所以看看英雄能不能打败所有怪兽。

    题解:先看看英雄打败所有怪兽要少多少血-英雄最大血量,然后再和怪兽最大的攻击力比一下,就可以判断出结果。

    #include<bits/stdc++.h>
    #define mem(a,b) memset(a,b,sizeof a)
    #define ll long long int 
    using namespace std;
    ll A,B,n;
    struct node{
        ll hp,aa;
    }s[100100];
    bool cmp(node a,node b)
    {
        return a.aa<b.aa;
    }
    int main()
    {
        int T;
        cin>>T;
        while(T--)
        {
            bool flag = true;
            ll ans = 0;
            ll maxx = 0;
            cin>>A>>B>>n;
            for(int i=1;i<=n;i++)
            {
                cin>>s[i].aa;
                maxx = max(maxx,s[i].aa);
            }
            for(int i=1;i<=n;i++)
            {
                int pp=0;
                cin>>s[i].hp;
                pp+=(s[i].hp/A);
                if(s[i].hp%A) pp++;
                ans+=(pp*s[i].aa);
            }
            //cout<<ans<<endl;
            if(B-ans>=0)
            {
                puts("YES");
            }
            else if(B-ans+maxx>0)
            {
                puts("YES");
            }
            else{
                puts("NO");
            }
            
        }
    }

     C. Searching Local Minimum

    二分交互题

    #include<bits/stdc++.h>
    #define mem(a,b) memset(a,b,sizeof a)
    #define ll long long int 
    using namespace std;
    int main()
    {
        int n; 
        cin>>n;
        int left=1,right=n;
        while(left<right) 
        {
            int mid = (left+right)>>1;
            printf("? %d
    ",mid);
            fflush(stdout);
            int x;
            scanf("%d",&x);
            printf("? %d
    ",mid+1);
            fflush(stdout);
            int y;
            scanf("%d",&y);
            if(x>y) left=mid+1;
            else right=mid;
        }
        printf("! %d",left);
        fflush(stdout);
        return 0;
    }
  • 相关阅读:
    poj.1703.Find them, Catch them(并查集)
    uva.10020 Minimal coverage(贪心)
    Hdu.1325.Is It A Tree?(并查集)
    1455.Solitaire(bfs状态混摇)
    hdu.1430.魔板(bfs + 康托展开)
    hdu.1254.推箱子(bfs + 优先队列)
    hihoCoder挑战赛11.题目4 : 高等理论计算机科学(LCA)
    Codeforces Round #302 (Div. 2).C. Writing Code (dp)
    hdu.1198.Farm Irrigation(dfs +放大建图)
    hdu.1111.Secret Code(dfs + 秦九韶算法)
  • 原文地址:https://www.cnblogs.com/lcsdsg/p/14388125.html
Copyright © 2020-2023  润新知