給定乙個長度為 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
乙個非負正數,表示答案
31 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 都滿足要求 所以看看哪些位置最後是確定的 或者發生了牴觸 直接輸出...