链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2460

题意:

给你一堆矿石,矿石有a,b两种性质,取任意个矿石,满足取得的这些矿石a性质异或和不为0,且b性质和最大,求b性质和的最大值。

思路:

线性基模板题,

根据线性基的性质: 线性基的任意一个子集异或和不为0。我们可以根据这些矿石的b性质从大到小排序,依此将这些矿石的a性质插到线性基里,如果能够插入的话就选这个,不能插入的话就不选。

实现代码:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. const int M = 1e6+;
  5. struct Linear_Basis{
  6. ll b[],nb[],tot;
  7. void init(){
  8. tot = ;
  9. memset(b,,sizeof(b));
  10. memset(nb,,sizeof(nb));
  11. }
  12.  
  13. bool Insert(ll x){
  14. for(int i = ;i >= ;i --){
  15. if(x&(1LL<<i)){
  16. if(!b[i]){
  17. b[i] = x;
  18. break;
  19. }
  20. x ^= b[i];
  21. }
  22. }
  23. return x > ;
  24. }
  25.  
  26. ll Max(ll x){
  27. ll ret = x;
  28. for(int i = ;i >= ;i --)
  29. ret = max(ret,ret^b[i]);
  30. return ret;
  31. }
  32.  
  33. ll Min(ll x){
  34. ll ret = x;
  35. for(int i = ;i <= ;i ++)
  36. if(b[i]) ret ^= b[i];
  37. return ret;
  38. }
  39.  
  40. void rebuild(){
  41. for(int i = ;i >= ;i --)
  42. for(int j = i-;j >= ;j --)
  43. if(b[i]&(1LL<<j)) b[i]^=b[j];
  44. for(int i = ;i <= ;i ++)
  45. if(b[i]) nb[tot++] = b[i];
  46. }
  47.  
  48. ll K_Min(ll k){
  49. ll res = ;
  50. if(k >= (1LL<<tot))
  51. return -;
  52. for(int i = ;i >= ;i --)
  53. if(k&(1LL<<i))
  54. res ^= nb[i];
  55. return res;
  56. }
  57. }LB;
  58.  
  59. struct node{
  60. ll a,b;
  61. }p[M];
  62.  
  63. bool cmp(node x,node y){
  64. return x.b > y.b;
  65. }
  66.  
  67. int main(){
  68. int n;
  69. while(scanf("%d",&n)!=EOF){
  70. LB.init();
  71. ll ans = ;
  72. for(int i = ;i <= n;i ++)
  73. scanf("%lld%lld",&p[i].a,&p[i].b);
  74. sort(p+,p++n,cmp);
  75. for(int i = ;i <= n;i ++){
  76. if(LB.Insert(p[i].a))
  77. ans += p[i].b;
  78. }
  79. printf("%lld\n",ans);
  80. }
  81. }

bzoj 2460 [BeiJing2011]元素 (线性基)的更多相关文章

  1. BZOJ 2460: [BeiJing2011]元素 线性基

    2460: [BeiJing2011]元素 Description 相传,在远古时期,位于西方大陆的 Magic Land 上,人们已经掌握了用魔法矿石炼制法杖的技术.那时人们就认识到,一个法杖的法力 ...

  2. BZOJ.2460.[BeiJing2011]元素(线性基 贪心)

    题目链接 线性基:https://blog.csdn.net/qq_36056315/article/details/79819714. \(Description\) 求一组矿石,满足其下标异或和不 ...

  3. BZOJ 2460 [BeiJing2011]元素 ——线性基

    [题目分析] 线性基,由于最多有63个,只需要排序之后,动态的去维护线性基即可. [代码] #include <cstdio> #include <cstring> #incl ...

  4. BZOJ 2460 [BeiJing2011]元素(线性基模板题)

    Description 相传,在远古时期,位于西方大陆的 Magic Land 上,人们已经掌握了用魔法矿石炼制法杖的技术.那时人们就认识到,一个法杖的法力取决于使用的矿石.一般地,矿石越多则法力越强 ...

  5. BZOJ:2460[BeiJing2011]元素 (异或基+贪心)

    2460: [BeiJing2011]元素 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 2910  Solved: 1535 题目链接:https: ...

  6. BZOJ 2460: [BeiJing2011]元素

    2460: [BeiJing2011]元素 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 878  Solved: 470[Submit][Statu ...

  7. BZOJ-6-2460: [BeiJing2011]元素-线性基

    链接 :https://www.lydsy.com/JudgeOnline/problem.php?id=2460 思路 :线性基不唯一,所以排序 进行贪心选择,价值最大的线性基, #include& ...

  8. BZOJ 2460: [BeiJing2011]元素 贪心,线性基

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2460 解法:从大到小排序,依次贪心的添加到当前集合就可以了,需要动态维护线性基.用拟阵证明 ...

  9. bzoj 2460: [BeiJing2011]元素【线性基+贪心】

    先按魔力值从大到小排序,然后从大到小插入线性基中,如果插入成功就加上这个魔力值 因为线性基里是没有异或和为0的集合的,所以正确性显然,然后最优性,考虑放进去一个原来没选的,这样为了可行性就要删掉一个, ...

随机推荐

  1. samba服务,连接远程开发机

    到了新环境,自己的开发机需要通过跳板机连,每次登录跳板机都需要RSA动态密码.一开始让我迷惑的是,这有个跳板机,那怎么让本地代码和开发机代码同步呢.以前公司的情况,一个是不需要跳板机,在phpstor ...

  2. 解析 STM32 的库函数

    解析 STM32 的库函数意法半导体在推出 STM32 微控制器之初,也同时提供了一套完整细致的固件开发包,里面包含了在 STM32 开发过程中所涉及到的所有底层操作.通过在程序开发中引入这样的固件开 ...

  3. 通过重建清理SVN服务器无用目录,不丢失其他目录修改记录

    1.主要时有时间希望调整一些文件的目录结构,或者移除一个大量占用空间的文件节省服务器磁盘,但是又不希望调整后,对应的修改记录丢失.这时可以通过服务器目录重建实现. 2.重建后只是被排除掉的目录的修改记 ...

  4. Maven-SSM项目pom.xml配置以及springmvc配置以及mybatis配置及web.xml配置

    一.Maven本地仓库的pom.xml配置 (全部是mysql数据库) <project xmlns="http://maven.apache.org/POM/4.0.0" ...

  5. odoo之页面跳转

    击备注时,会由备注id带出他的内容 customer.requirement这是备注内容表 def sale_requirements_change(self, cr, uid, ids, requi ...

  6. git log 的常用选项

  7. Robot Framework的日期处理

    http://www.cnblogs.com/channy14/p/6160831.html http://blog.csdn.net/r455678/article/details/52993765

  8. Solr数据库导入

    Solr数据库导入 1.在MySQL中创建一张表t_solr,并插入测试数据. 2.把E:\Solr\solr-4.10.4\example\example-DIH\solr\db\conf下的adm ...

  9. GATT服务搜索流程(二)

    关于bta_dm_cb.p_sec_cback,这里我们之前已经分析过,他就是bte_dm_evt ,最终调用的函数btif_dm_upstreams_evt : static void btif_d ...

  10. 理解标准盒模型和怪异模式&box-sizing属性

    盒子模型 主要有两种,w3c标准盒模型,IE下的怪异盒模型,其实还有就是弹性盒模型(上篇文章我们用他很好的解决了对齐问题) DTD规范 盒模型分为:标准w3c盒模型.IE盒模型.以及css中的伸缩盒模 ...