bzoj 2844 albus就是要第乙個出場

2021-07-23 15:01:20 字數 536 閱讀 3481

首先就是乙個線性基。然後不能放進去的相當於0,然後列舉前多少位和m相同,那麼後一位比m小的方案累加入答案即可。

ac**如下:

#include#define mod 10086

using namespace std;

int n,m,cnt,bin[35],bs[35],s[35];

bool ins(int x)else x^=bs[i];

return 0;

}int ksm(int x,int y)

int main()

s[0]=bs[0]; for (i=1; i<=29; i++) s[i]=s[i-1]+(bs[i]>0);

scanf("%d",&m);

int ans=0;

for (i=29,x=0; i>=0; i--)

printf("%d\n",(ans+1)%mod);

return 0;

}

by lych

2016.10.11

BZOJ2844 albus就是要第乙個出場

傳送門 給定乙個含 n 個自然數的集合s,將 2s中所有集合的所有元素的異或和從小到大排列 下標從 1 開始 求ta r在其中第一次出現的下標 保證給出的數出現過 對 10086 取模.1 n 105 ai 109.首先tar 0的情況最好先特判掉.然後我們要求的是從 s 中取若干元素 可以不取 異...

BZOJ2844 albus就是要第乙個出場

給出a陣列,共有n個數,你可以選其中一些出來xor 至少乙個數 所以可能的xor結果值排序後去重,問你排在第k個的結果值是多少.線性基有個性質 線性基內任意集合異或結果唯一,而所有數異或0還是本身 所以每個數字出現的個數就等於 1 異或值為0的集合個數 2 n cnt 所以問題就轉化為求線性基有效位...

BZOJ 2844 albus就是要第乙個出場

已知乙個長度為n的正整數序列a 下標從1開始 令 s s 的冪集2 s定義為s 所有子 集構成的集合。定義對映 f 2 s zf 空集 0f t xor a t 對於一切t屬於t現在albus把2 s中每個集 合的f值計算出來,從小到大排成一行,記為序列b 下標從1開始 給定乙個數,那麼這個數在序列...