TouchStone
  Please Login
ログイン 登録
距离明年CSP第一轮: ??天 距离CSP第二轮: ??天 距离NOIP还有: ??天
 ホームページ  問題セット  試験一覧  提出状況  掲示板  統計情報
  • ホーム
  • 問題セット
  • P5646
  • 問題
  • P5646[FJ2014]异或之
    制限 : 時間制限 : - MS   メモリ制限 : - KB
    審判説明 : 1s,256m
    問題説明

    给定n个非负整数A[1], A[2], ……, A[n]。
    对于每对(i, j)满足1 <= i < j <= n,得到一个新的数A[i] xor A[j],这样共有n*(n-1)/2个新的数。求这些数(不包含A[i])中前k小的数。
    注:xor对应于pascal中的“xor”,C++中的“^”。

    入力形式

    第一行2个正整数 n,k,如题所述。
    以下n行,每行一个非负整数表示A[i]。

    出力形式

    共一行k个数,表示前k小的数。

    サンプル入力

    4 5
    1
    1
    3
    4

    サンプル出力

    0 2 2 5 5

    ヒント

    【样例解释】

    1 xor 1 = 0 (A[1] xor A[2])

    1 xor 3 = 2 (A[1] xor A[3])

    1 xor 4 = 5 (A[1] xor A[4])

    1 xor 3 = 2 (A[2] xor A[3])

    1 xor 4 = 5 (A[2] xor A[4])

    3 xor 4 = 7 (A[3] xor A[4])

    前5小的数:0 2 2 5 5

    【数据范围】

    对于100%的数据,2 <= n <= 100000; 1 <= k <= min{250000, n*(n-1)/2};

        0 <= A[i] < 2^31
    

    ソース  bzoj3689