zoukankan      html  css  js  c++  java
  • Codeforces Round #555 (Div. 3) A B C1(很水的题目)

    A. Reachable Numbers

    题意:设f(x)为 x+1 这个数去掉后缀0的数,现在给出n,问经过无数次这种变换后,最多能得到多少个不同的数。

    代码

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #include<queue>
    #include<stack>
    #include<set>
    #include<map>
    #include<vector>
    #include<cmath>
    
    const int maxn=1e5+5;
    typedef long long ll;
    using namespace std;
    int sum=0;
    map<int,bool>mp;
    int  f(int x)
    {
        if(mp[x]==true)
        {
            return 1;
        }
        //cout<<sum<<endl;
        sum++;
        mp[x]=true;
        //cout<<x<<" "<<mp[x]<<endl;
        x++;
        while(x%10==0)
        {
            x/=10;
        }
        return f(x);
    }
    int main()
    {
        int n;
        cin>>n;
        f(n);
        cout<<sum<<endl;    
        return 0;
    }

    B. Long Number

    题意:给一个长度为n的字符串,给出 f 数组表示你可以把字符 x 变成对应的 f (x),你只能修改一段连续的子串,求修改后字典序最大的字符串。

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #include<queue>
    #include<stack>
    #include<set>
    #include<map>
    #include<vector>
    #include<cmath>
    
    const int maxn=1e5+5;
    typedef long long ll;
    using namespace std;
    map<char,char>mp;
    int main()
    {
        int n;
        cin>>n;
        string str;
        cin>>str;
        char c[2];
        for(int t=1;t<=9;t++)
        {
            char ss='0'+t;
            cin>>c;
            mp[ss]=c[0];
        }
        int flag=0;
        for(int t=0;t<n;t++)
        {
            if(mp[str[t]]>str[t])
            {
                str[t]=mp[str[t]];
                flag=1;
            }
            else if(flag==1&&mp[str[t]]<str[t])
            {
                break;
            }
        }
        
        cout<<str<<endl;
        return 0;
    }

    C1. Increasing Subsequence (easy version)

     

    题意:给一个长度为 n 的数组,每个数不一样,每次你可以从坐边界或者右边界取一个数,要求每一次取的数都要比上一次取得数要大,求最多可以取多少个数。

    代码:

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #include<queue>
    #include<stack>
    #include<set>
    #include<map>
    #include<vector>
    #include<cmath>
    
    const int maxn=1e5+5;
    typedef long long ll;
    using namespace std;
    vector<int>vec;
    int main()
    {
        int n;
        cin>>n;
        int x;
        for(int t=0;t<n;t++)
        {
            scanf("%d",&x);
            vec.push_back(x);    
        }
        vector<int>::iterator it1=vec.begin(),it2=vec.end()-1;
        vector<char>v;
        int xx=0;
        for(int t=0;t<n;t++)
        {
         if(*it2>xx||*it1>xx)
         {
             if(*it2<*it1&&*it2>xx&&*it1>xx)
             {
             xx=*it2;
             v.push_back('R');
             it2--;
            }
            else if(*it1<*it2&&*it2>xx&&*it1>xx)
            {
            xx=*it1;
             v.push_back('L');
             it1++;
            }
            else if(*it2>xx)
            {
             xx=*it2;
             v.push_back('R');
             it2--;
            }
            else if(*it1>xx)
            {
            xx=*it1;
             v.push_back('L');
             it1++;
            }
           // cout<<xx<<endl;
         }
        }
        cout<<v.size()<<endl;
        vector<char>::iterator it=v.begin();
        for(it=v.begin();it!=v.end();it++)
        {
            cout<<*it;
        }
        return 0;
    }
  • 相关阅读:
    SSH防止超时的设置
    vuejs中v-bind绑定class时的注意事项
    js常用到的方法积累
    主流浏览器以及系统的判断
    理解Javascript的状态容器Redux
    可伸缩架构简短系列
    在Node.js中使用RabbitMQ系列一 Hello world
    在Node.js中使用RabbitMQ系列二 任务队列
    Javascript中的async await
    公钥,私钥和数字签名
  • 原文地址:https://www.cnblogs.com/Staceyacm/p/10793279.html
Copyright © 2011-2022 走看看