[线性基+贪心] BZOJ2460: [BeiJing2011]元素
来源:互联网 发布:mac上不了网 编辑:程序博客网 时间:2024/05/21 03:26
题意
给出n个元素的数集,每个数都有一个权值,求选出一个异或和不为0的子集,使得权值和最大。
N ≤ 1000,其他 ≤ 10^18
题解
经典线性基应用。
线性基可以判断某个数是否能在已插入线性基的数相互异或得到,这样就能判断这个数是否能选。
需要得到的权值最大,那么直接对于每件物品按权值排序,按权值从大到小插入即可。
#include<cstdio>#include<algorithm>using namespace std;typedef long long LL;const int maxn=10005;int n;LL bin[75],a[75],ans;struct data{ LL x; int p; bool operator < (const data &B)const{ return p>B.p; }} b[maxn];int main(){ freopen("bzoj2460.in","r",stdin); freopen("bzoj2460.out","w",stdout); bin[0]=1; for(int i=1;i<=63;i++) bin[i]=(bin[i-1]<<1); scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%lld%d",&b[i].x,&b[i].p); sort(b+1,b+1+n); for(int i=1;i<=n;i++){ for(int j=63;j>=0;j--) if(b[i].x&bin[j]){ if(!a[j]){ a[j]=b[i].x; ans+=b[i].p; break; } else b[i].x^=a[j]; } } printf("%lld\n",ans); return 0;}
阅读全文
0 0
- 【bzoj2460】【beijing2011】【元素】【线性基+贪心】
- [线性基+贪心] BZOJ2460: [BeiJing2011]元素
- bzoj2460 [ Beijing2011 ] -- 线性基+贪心
- 【BZOJ2460】【Beijing2011】元素 线性基
- [BZOJ2460][BeiJing2011]元素-线性基
- BZOJ2460 [BeiJing2011]元素 【线性基】
- [BZOJ2460][BeiJing2011]元素(贪心+高斯消元求线性基)
- 线性基 模板 bzoj2460 【BeiJing2011】 元素
- 【BZOJ2460】元素,线性基+贪心
- 贪心+线性基 [BeiJing2011]元素
- 【BZOJ2460】【贪心】【拟阵】【高斯消元】[BeiJing2011]元素
- 2460: [BeiJing2011]元素 贪心+线性基
- 2460: [BeiJing2011]元素|线性基|高斯消元|贪心
- BZOJ_P2460 [BeiJing2011]元素(贪心+线性基)
- bzoj 2460: [BeiJing2011]元素 线性基+贪心
- [BZOJ]2460: [BeiJing2011]元素 线性基+贪心
- BZOJ2460 [BeiJing2011]元素 Solution
- 【BeiJing2011】【BZOJ2460】元素
- 移动通信技术
- iframe调用总结
- Android动画基础:平移、缩放、旋转、透明度
- Oralce存储过程中创建表
- 欢迎使用CSDN-markdown编辑器
- [线性基+贪心] BZOJ2460: [BeiJing2011]元素
- 作为一切的开始
- 解决FTPClient上传文件为空
- 用Navicat导入数据时报错,[Err] 2006
- Opencv中Mat中元素的值读取方法总结
- ASP.Net 开发中关于时间模糊匹配问题
- PHP iconv 解决utf-8和gb2312编码转换问题
- java转换数字以万为单位
- Redis之RDB持久化