• EOJ Monthly 2019.11部分题解


    A题

    本题虽然是签到题,但是思路十分精巧,提醒我以后思考的时候可以多考虑进制转化的思路

    因为本题要求第x个单词,又注意到备选单词的长度是相同的,可以想到用k进制的转化来思考

    第x个即求x-1的k进制数,然后按照前后顺序来逐个遍历#号并替换,注意的是,不够要添0

    #include<iostream>
    #include<cstring>
    #include<string>
    #include<cmath>
    #include<algorithm>
    #include<map>
    #include<vector>
    #include<cstdio>
    #include <unordered_map>
    using namespace std;
    const int N=2000005;
    const int inf=0x3f3f3f3f;
    typedef long long ll;
    vector<int> num;
    vector<char> c;
    int main(){
        int n,m,k;
        ll x;
        string s;
        cin>>n>>m>>k>>x;
        char t;
        cin>>s;
        int i,j;
        x-=1;
        while(x){
            num.push_back(x%k);
            x/=k;
        }
        int mid=m-(int)num.size();
        for(i=0;i<mid;i++)
        num.push_back(0);
        m-=1;
        for(i=0;i<n;i++){
            if(s[i]=='#'){
                for(j=0;j<k;j++){
                    cin>>t;
                    c.push_back(t);
                }
                sort(c.begin(),c.end());
                cout<<c[num[m]]; 
                m--;
                c.clear();
            }
            else
            cout<<s[i];
        }
        cout<<endl;
    }
    View Code
  • 相关阅读:
    手机体验细节小动画
    第一次用AngularJS
    鼠标离开方向检测
    回忆之placeholder
    回忆之日历
    大数据学习
    shell 二
    十三:变量、函数、存储过程、循环控制结构
    十二:事务与视图
    十一:约束
  • 原文地址:https://www.cnblogs.com/ctyakwf/p/12189181.html
Copyright © 2020-2023  润新知