洛谷P4570 [BJWC2011]元素(贪心、线性基)
传送门
解题思路
贪心策略:按照价值从大到小排序,能选就选。
用线性基维护是否发生冲突。
正确性:异或和为0的几个数中去掉价值最低的异或和一定不为0。
AC代码
#包括牡蛎
#包括算法
# includecmath
#includecstdio
# includecstring
#includecstdlib
#包括
#includeset
#includemap
#包含因子
#包括阿曼普
#包括时间
#includestack
使用命名空间标准;
const int maxn=1005
int n,ans
long long a[maxn];
结构节点{
长长久久;
int b;
弯曲件运算符(常量节点十)常量{
返回bx.b
}
} x[maxn];
void add(long long x){ 0
for(int I=63;I=0;I-){ 0
if(x(1ll Li)){ 0
如果(a[i])x^=a[i];
else{
a[I]=x;
返回;
}
}
}
}
布尔检查(长x长){ 0
for(int I=63;I=0;I-){ 0
if(x(1ll Li)){ 0
如果(a[i])x^=a[i];
else{
返回真;
}
}
}
返回错误的
}
int main(){ 0
IOs :3360 sync _ with _ stdio(false);
cinn
for(int I=1;I=n;一)cinx[i].斧头[i].b;
排序(x ^ 1,x ^ n ^ 1);
for(int I=1;I=n;I){ 0
如果(检查(x[i]).a))加上(x[i].a),ans=x[i].b;
}
coutans
返回0;
}
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/52941.html