ネットワークゲームの補充

2019年中国の大学対抗プログラミングコンテスト(CCPC) - トライアルネットワーク

A - ^&^

ビット演算は、今、私たちは2つの正の整数A及びBを持つコンピュータサイエンスの一般的な計算方法で、正式の値(XOR C)を最小化する整数C&(Bの排他的論理和C).Sometimes我々は見つけることができますをご覧くださいCTOの多くはこれを行う、だからあなたは基準を満たす最小のCCを見つける必要があります。

たとえば、のは、Aは5に等しく、Bが3に等しいとしましょう、私たちは.... = 1,3 Cを選択することができますので、我々はC探している答えは1に等しいです。

0ときC = 0の式の値である場合、1を出力してください。

入力

入力ファイルは、Tテストサンプルを含む。(1 <= T <= 100)

入力ファイルの最初の行は、整数TTです。

次いでTlines 2つの正の整数、AA及びBB、(1≤A、B <2321≤A、B <232)を含んで

出力

各テストケースのために、あなたは、出力の答えと、回答ごとに行する必要があります。

サンプル入力

1 
3 5

サンプル出力

1

 

溶液:離散数学分配プロパティ(XORのC)&(Bの排他的論理和C)=(A&B)XOR Cに類似

XOR:排他的論理和B =(¬A∧B)∨(∧¬b)(⊕= XOR)

真偽⊕=真

⊕=真真偽

⊕=偽偽偽

⊕= TRUE TRUE偽

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
INT メイン()
{ 
    長い 長いT、B。
    cinを >> トン。
    一方、(t-- 
    { 
        CIN >> A >> B。
        // coutの<<(A&B)<<」「; 
        もし((A&B)== 0 
           COUT << 1 << ENDL。
        他の
           coutの <<(A&B)<< てendl; 
    } 
    戻り 0 
}

 

 

G - CCPCのWindowsの

近年では、CCPCは急速に発展し、.One競技者が注文CCPCウィンドウが図に示されている1-ST CCPCのWindows【選択と呼ばれるデザインを設計し、競合他社の多数を得ています:

 

 

 

 

 

そして、2-ND注文CCPCウィンドウは図に示します。

 

 

 

 

 

 

 

 

我々は簡単次数kのCCPCのウィンドウが次数k、およびAS次数k-1のCCPCのウィンドウにC / Pを反転した結果をCとして次数k-1のCCPCの窓をとることによって生成されることを見つけることができます次数kのP。

そして今、私は次数kを持っている、してください出力K-順CCPCのWindows、次数kのCCPCウィンドウが2K * 2kの行列です。

 

入力

入力ファイルは、Tテストサンプルを含む。(1 <= T <= 10)入力ファイルの最初の行は整数T.ありそしてT線は正の整数kを、(1≤k≤10)が含まれ

出力

各テストケースのために、あなたは出力答えをする必要があります。

サンプル入力

3 
1
2
3

サンプル出力

CC 
PC
CCCC
PCPC
PPCC
CPPC
CCCCCCCC
PCPCPCPC
PPCCPPCC
CPPCCPPC
PPPPCCCC
CPCPPCPC
CCPPPPCC
PCCPCPPC

この質問は、簡単に見えますが、注意が必要です

4つの文字で始まる、左下隅、他の3つが同じではありません、

最初に使用される第二を構成することができる、第二は、4つの部分、左下隅とは反対側、すなわち、PはCになるに分割され、Cは同じまま、Pとなります。それは線で、私は出力動作8行を合計したい出力ラインを想定することができ、2 ^ n行の合計をエクスポートするには、今、出力ライン1、

実際には、それが二回総出力動作出力ライン14ラインです、

場合1回、同一の1回の出力出力線にそれぞれ行4反対側の全体的な動作である左下隅部の出力、。

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
ボイド解く(整数 nは、INT R、INT F)
{ 
    場合(N == 2 
    { 
        場合(== F 1 
        { 
            もし、(R == 1 
              のprintf(" CC " )。
            
              のprintf(" PC " ); 
        } 
        
        { 
            もし、(R == 1 
              のprintf("PP " );
             
              のprintf(" CP " ); 
        } 
        リターン; 
    } 
    int型、T = R%(N / 2 であれば(Tの== 0 
       、T = N / 2 ;
     もし(F == 1 
    { 
        場合( R> N * 1.0 / 2 
           (N解く / 2、T、0 );
         そうでなければ
           (N解く / 2、T、1);
        解決(N / 2、T、1 ); 
    } 
    そう であれば(== F 0 
    { 
        場合(R> N * 1.0 / 2 
           解く(N / 2、T、1 );
        他の
           解決(N / 2、T、0 ); 
        解決(N / 2、T、0 ); 
    } 
} 
int型のmain()
{ 
    int型T、N。
    cinを >> トン。
    しばらく(t--
    { 
        CIN >> N。
        N = 1 << N。
        以下のためにint型 i = 1 ; iは++; iが= N < 
        { 
            解く(N、I、1 )。
            printf(" \ nを" ); 
        } 
    } 
    戻り 0 
}

 

 

F - シャッフルカード

カードのデッキはNNのカードで構成されています。各カードは、1からnまでの番号、異なっています。最初に、カードが1からNNに命じられました。私たちは、次のようにシャッフル処理を完了し、各操作では、我々はカードを引くだろうし、最初のカードの位置に入れ、そしてミリメートル回この操作を繰り返します。

mmの操作の後に出力にカードの順番をしてください。

入力

入力の最初の行は2つの正の整数NNとMMを含有する。(1 <= N、MN、M <= 105105)

入力ファイルの2行目はn個、NNを介して1の配列を有します。

次の二番目の操作によって抽出されたカード番号を表す正の整数シシィを有し、それぞれがM行が存在します。

出力

出力にm個の操作後のカードの順番をしてください。(各数値の後にスペースがあるはずです。)

サンプル入力

5 3 
1 2 3 4 5
3
4
3

サンプル出力

3 4 1 2 5

この問題は、逆の順序で積層した後、入力されたデータの後に高度、単純スタックであり、BOOLタグ・アレイを定義することを決定することができます

#include <ビット/ STDC ++ H> 
の#include <積層>
 使用して 名前空間STDを、
const  int型 MAXN = 1E5 + 10 ブールブック[MAXN]。
スタック < int型 > S;
INT [MAXN]。
INT のmain()
{ 
    int型N、M、X。
    CIN >> N >> M。
    以下のためにint型 i = 1 ; iが= <N; iは++ 
       CIN >> [I]。
    以下のためにint型、I> I = N 0 ; i-- 
       s.push([I])。
    一方、(M-- 
    { 
        CIN >> X。
        s.push(X)。
    } 
    のmemset(書籍、はsizeof (書籍));
    一方、(!s.empty())
    { 
        X = s.top()。
        s.pop(); 
        もし(ブック[X] == 
        { 
            のprintf(" %d個" 、X)。
            この本は、[X] = ; 
        } 
    } 
    戻り 0 
}

 

おすすめ

転載: www.cnblogs.com/ylrwj/p/11537183.html