問題のEOJ毎月2019.11一部のソリューション

タイトル

この質問は、タイトルに署名することですが、アイデアは非常にデリケートである、あなたは、バイナリ変換のアイデアを考えることができたとき、私は将来を考える思い出させるが、

この質問の長さはx番目の単語を必要とするだけでなく、代替の単語が同じであることを指摘しているので、あなたがk-aryの考えるように変換を使用して考えることができます

すなわち、x番目の要求がトラバース及び#代替前後順序に従ってK進数1をX、及びその後一つずつ、それが注目され、0を追加しません

#include <iostreamの> 
する#include <CStringの> 
する#include < ストリング > 
の#include <cmath> 
の#include <アルゴリズム> 
の#include <マップ> 
の#include <ベクトル> 
の#include <cstdioを> 
する#include <unordered_map>
 使用して 名前空間STDを、
const  int型 N = 2000005 ;
const  int型 INF = 0x3f3f3f3f 
typedefの長い 長いLL。
ベクトル < int型 > NUM; 
ベクトル < 文字> C;
INT のmain(){
     int型N、M、K。
    LLのx; 
    文字列sの。
    CIN >> N >> M >> K >> X。
    文字T; 
    cinを >> 秒;
    int型私は、jは、
    X - = 1 ;
    一方、(X){ 
        num.push_back(XK)。
        X / = K。
    } 
    INT半ば= M-(INT )num.size();
    以下のための(私は= 0 ; I <半ばを、I ++ 
    num.push_back(0 ); 
    M - =1 ;
    以下のために(私は= 0 ; iが<N; iが++ ){
         もし、(S [I] == ' ' ){
             ため(J = 0 ; J <K、J ++ ){ 
                CIN >> T。
                c.push_back(T)。
            } 
            ソート(c.begin()、c.end())。
            COUT << C [NUM [M]。
            M - 
            c.clear(); 
        } 
        
        COUT << S [i]は、
    } 
    COUT << ENDL。
}
コードの表示

おすすめ

転載: www.cnblogs.com/ctyakwf/p/12189181.html