其他分享
首页 > 其他分享> > 3.19

3.19

作者:互联网

原题链接

题外话

可算能做出来一道题了qaq

题意

让你把一个字符串排成字典序最小的形式,移动方式是奇数和偶数相邻,这两个数可以无限以动

思路

用两个数组,分别存奇偶,然后处理一下就好,挺简单的(代码写的挺丑的。。)

代码

///*
//正在播放《フリージア》
//1:21  ━━━━━━●─────   5:35
//   ?   ?   ??   ?   ?
//```````'`...```````''`````````````'````````````````'`.`''
//```````''..`';;'```''```'''''''''''''`````````````````'':
//.````''''':;;!!:````'````'''''''''''``````````````````'':
//``''''''':;;;;;'```'``````''```````````____________```'':
//`````````:;;!;'```````````'```````'```|   所以说   |'``'':
//```````'|$&$%:````````````'```````````|不要停下来啊|''''':
//````'''!$&&&|'```````````'''::''::''''/ (指AC)  |':'':::
//````'':|&&&$!'`````'''''''::.....`;!;'/_________|''``'::
//  ....'|&&@$!'........```:!;'....`:;:```````````````````'
//..````;$&&&$!:''``````'':|%%!::;|%$$!::::::::''::::::::::
//``````!&&@&&|:'````````':|$$$$$$$$$|:':::::::::::::::::::
//`````:%&@@@@@@@@&&&@@@@&&&&@@@@@@@&&&|::::::::':::::::::;
//`````.```':|$@@@@@@@@@@@@@@@@@@@@@@@@###@@&&$|;:::'::::::
//````````````';|$&@@@@@@@@@###@@@@@@########@@@@$!''''::::
//`````````..````:|%$@@@@@#########@#########@@@@&!''''::::
//`````````````````:|&########################@@@$;::::::::
//``````````````````:!$@########################@%;:::'::::
//``````````..``````':|&#######################@@&!''''''::
//''''::'''`.`''''''':|@#######################@@&|:'`.`';!
//:::::::::``'''''';%@######################@@##@@&!::'';;;
//::;::::::`.''''';%@@@@####################$%@##@@%;:'':;!
//:;;;;::::``':;%@@@#########################&%&##@@|:'';;!
//;;!;;;;;;'`::;%@#############################@@##@$!'';!!
//;;;;;;;;:``':::::;|$@############################@$!'`;!!
//::;;;;;;:'`'::::::;!$@#######################&&@$$$;``:;;
//`````````..````````'|@#####################$;!$$$&@@|''':
//'''''''''''''':'''''|@#########@&@##########@@####@@&%|!!
//''''''''':'''::'':''!&########&!|&@##########&&####&%|!||
//:::::'''::::::::::::!&########|:;|$@#########@&###&%||||!
//:::::::'''''':::::::!&#######@!:;!!$@########@$&##@%||||!
//
//                    だからよ...止まるじゃねえぞ
// */




#include <vector>
#include <algorithm>
#include <string>
#include<cstring>
#include <iostream>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <unordered_map>
#include <bitset>
#include <cassert>
#include <chrono>
#include <random>
#include <iomanip>
#include <unordered_set>
#include <ctime>
#include <chrono>
using namespace std;
// #define  ll long long
const int N =1e5+10;
#define PII pair<int , int > 
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define pb push_back
#define sz(x) (int)(x).size()
typedef long long ll;
typedef long double ld;
mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count());
ll n , m ,t ;
ll ar[1000010];
#define __i __int128
//ll mod = 1e9+7;
vector<ll > div(ll x){
    vector<ll > res;
    for(ll i=1 ;i<=x/i;i++) {
        if(x%i==0){
            res.push_back(i);
            if(i!=x/i)res.push_back(x/i);
        }
    }
    sort(res.begin(), res.end());
    return res;
}
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);
    cin >>n;
    while(n--){
        string s;cin >>s;
        vector<char>o,e;
        for(int i=0 ;i<s.size();i++) {
            if((s[i]-'0')%2==0)e.pb(s[i]);
            else  o.pb(s[i]);
         }
         //cout<<sz(o)<<" "<<sz(e)<<endl;
         int num1=0,num2=0;int f=0;
        for(int i=0;i<s.size();i++){
            if((s[i]-'0')%2==0){
                if(num2!=sz(o)&&num1!=sz(e)){
                    while(e[num1]<=o[num2]){
                        cout<<e[num1];num1++;
                        if(num1==sz(e))break;
                    }
                    cout<<o[num2];num2++;
                }
                else{
                    while(num1!=sz(e)){
                        cout<<e[num1];num1++;
                    }
                    f=1 ;
                    break;
                }
            }
            if((s[i]-'0')%2==1){
                    if(num2!=sz(o)&&num1!=sz(e)){
                    while(o[num2]<=e[num1]){
                        cout<<o[num2];num2++;
                        if(num2==sz(o))break;
                    }cout<<e[num1];num1++;
                }
                else{
                    while(num2!=sz(o)){
                        cout<<o[num2];num2++;
                    }
                    f=2;
                    break;
                }
                
            }
        }
        //cout<<num1<<endl;
        if(f==1){
            while(num2!=sz(o)){
                        cout<<o[num2];num2++;
                    }
        }
        if(f==2){
            while(num1!=sz(e)){
                        cout<<e[num1];num1++;
                    }
        }
        cout<<endl;
     }
    return 0;

}

标签:3.19,..,ll,long,&&&,include,define
来源: https://www.cnblogs.com/gaohaoy/p/12521989.html