保證答案在long long內。
處理完線性基之後,就可以使用其性質4:
求任意子集xor最大值: 把線性基中所有元素xor起來n求任意子集xor最小值: 等於最小的主元
查詢x是否在值域中: 如果x能插入線性基,則x不能被當前線性基xor出來
查詢第k小的值: 把k進行二進位制分解,把1對應位置的主元xor起來;注意這裡第0小就是0
求任意子集與x進行xor的最大值:從高->低貪心,若xor上a[j]能變大就xor
2^2n後一
個排名(
2n−1
)−第一
個大於k
的排名+
1最後乙個排名(2^-1) - 第乙個大於k的排名 + 1
最後乙個排名
(2n−
1)−第
乙個大於
k的排名+1。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define go(i, l, r) for(int i = (l), i##end = (int)(r); i <= i##end; ++i)
#define god(i, r, l) for(int i = (r), i##end = (int)(l); i >= i##end; --i)
#define ios ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define debug_in freopen("in.txt","r",stdin)
#define debug_out freopen("out.txt","w",stdout);
#define pb push_back
#define all(x) x.begin(),x.end()
#define fs first
#define sc second
using
namespace std;
typedef
long
long ll;
typedef
unsigned
long
long ull;
typedef pair pii;
const ll maxn =
1e6+10;
const ll maxm =
1e6+10;
const ll inf_int =
1e8;
const ll inf_ll =
1e17
;template
<
class
t>
void
read
(t &x)
while
(ch>=
'0'&&ch<=
'9') s=s*
10+ch-
'0',ch=
getchar()
; x = s*w;
}template
<
classh,
class..
. t>
void
read
(h& h, t&..
. t)
voidpt(
)template
<
classh,
class..
. t>
void
pt(h h,t.
.. t)
//--------------------------------------------
int n,l =62;
ll k;
ll a[maxn]
;int zero =0;
bool
insert
(ll x)
for(
int k = j -
1;k>=
0;k--)}
for(
int k = l;k>j;k--)}
a[j]
= x;
return1;
}return0;
}ll judge
(ll mid)
mid/=2
;}return ans;
}void
solve
(int cnt)
else l = mid+1;
}if(ans >= total)
puts
("0");
else
}int
main()
solve
(cnt)
;return0;
}
二分思想(整數數列上的二分 實數域上的二分)
其實對於二分來說,我們可以分為兩類 1 整數域上的二分 2 實數域上的二分 但是總的二分的條件都是一樣的 需要序列具有單調性。1 整數域上的二分,分三步 其中mid最好是 1 而不是 2,因為 1 是向下取整,而 2是向0取整,在負數時很有用 1 通過分析具體問題,確定左右半段哪乙個是可行區間,以及...
線性查詢 二分查詢
在陣列中找出某個值a 線性查詢 二分查詢 線性查詢就是乙個個比較,找出那個值a。二分查詢是針對有序數列,找出中間值nid與a比較,mid a,從mid左邊小於mid的值中查詢,這樣依次縮小查詢空間,找到該值。線性查詢法 value 3 array 1,2,3,4,5,6,7 def ls ary,v...
線性向量 二分查詢
範圍區間 lo,hi 查詢 e 返回 下標 t 通用型別 function binarysearch t arr,t e,int lo,int hi else if arr mid e else return mid return 1 沒找到 改版 範圍區間 lo,hi 查詢 e 返回 下標 t 通...