HIHOCODER 1509 異或排序

2022-07-26 10:27:14 字數 1007 閱讀 5534

給定乙個長度為 n 的非負整數序列 a[1..n]

你需要求有多少個非負整數 s 滿足以下兩個條件:

(1).0 ≤ s < 260

(2).對於所有 1 ≤ i < n ,有 (a[i] xor s) ≤ (a[i+1] xor s)

第一行乙個正整數 n

第二行 n 個非負整數表示序列 a[1..n]

1 ≤ n ≤ 50

0 ≤ a[i] < 260

乙個非負正數,表示答案

3

1 2 3

對於兩個相鄰的數,如果\(a[i]>a[i+1]\)那麼調整它們的最小代價是將s最高且不相同位置為1,反之,維持\(a[i]的最小代價是將該位置為0.

這些都是固定位,那麼最終答案就是非固定位任選。

#include#include#include#include#include#include#include#define ll long long

#define inf 1000000000

using namespace std;

ll read()

while(ch>='0'&&ch<='9')

return x*f;

}void out(ll a)

const int n=105;

ll a[n],c[n];

int main()

c[j]=flag;

break;}}

}ll sum=0;

for(int i=0;i<=59;i++) if(c[i]==-1) sum++;

printf("%lld\n",1ll

}

hihocoder 1509 異或排序 二進位制思維

題目鏈結 題意 給定乙個長度為 n 的非負整數序列 a 1.n 你需要求有多少個非負整數 s 滿足以下兩個條件 1 0 s 260 2 對於所有 1 i n 有 a i xor s a i 1 xor s 思路 這個題目不是很難想,因為我們一看到異或啊啥的跟二進位制有關係的東西,都會去想它的每一位的...

hihocoder1693 逆序異或和

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 給定長度為n的序列a1,a2,an,求 其中xor是按位異或運算。第一行包含乙個整數n。第二行包含n個整數a1,a2,an。對於60 的資料,1 n 5000 對於100 的資料,1 n 100000,1 ai 100000 ...

hihoCoder挑戰賽28 A 異或排序

題目鏈結 題意 題解 每次找到相鄰兩個數的二進位制形式中 不同的最高位 顯然s在這一位必然是確定的 必須在這一位確定數字讓a i a i 1 至於更高位的,它們的數字是相同的,以及更低位的 它們都任意 因為要對於所有的i 1.n 1 都滿足要求 所以看看哪些位置最後是確定的 或者發生了牴觸 直接輸出...