题目描述

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

一般地,矿石越多则法力越强,但物极必反:有时,人们为了获取更强的法力而使用了很多矿石,却在炼制过程中发现魔法矿石全部消失了,从而无法炼制出法杖,这个现象被称为“魔法抵消” 。特别地,如果在炼制过程中使用超过一块同一种矿石,那么一定会发生“魔法抵消”。后来,随着人们认知水平的提高,这个现象得到了很好的解释。经过了大量的实验后,著名法师 Dmitri 发现:如果给现在发现的每一种矿石进行合理的编号(编号为正整数,称为该矿石的元素序号),那么,一个矿石组合会产生“魔法抵消”当且仅当存在一个非空子集,那些矿石的元素序号按位异或起来为零。(如果你不清楚什么是异或,请参见下一页的名词解释。 )

例如,使用两个同样的矿石必将发生“魔法抵消”,因为这两种矿石的元素序号相同,异或起来为零。并且人们有了测定魔力的有效途径,已经知道了:合成出来的法杖的魔力等于每一种矿石的法力之和。人们已经测定了现今发现的所有矿石的法力值,并且通过实验推算出每一种矿石的元素序号。

现在,给定你以上的矿石信息,请你来计算一下当时可以炼制出的法杖最多有多大的魔力。

输入输出格式

输入格式:

第一行包含一个正整数N,表示矿石的种类数。
接下来 NN行,每行两个正整数 Numberi 和 Magici,表示这种矿石的元素序号和魔力值。

输出格式:

仅包一行,一个整数代表最大的魔力值。

输入输出样例

输入样例#1:


1 10 
2 20 
3 30

输出样例#1:

50

思路:与 元素(HYSBZ-2460)同一个题

源代码

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<map>
#include<bitset>
#define EPS 1e-9
#define PI acos(-1.0)
#define INF 0x3f3f3f3f
#define LL long long
#define Pair pair<int,int>
const int MOD = 1E9+7;
const int N = 1000+5;
const int dx[] = {0,0,-1,1,-1,-1,1,1};
const int dy[] = {-1,1,0,0,-1,1,-1,1};
using namespace std;struct LinearBasis {LL d[60+5];//线性基LinearBasis() {memset(d,0,sizeof(d));}bool add(LL x){for(int i=60; i>=0; i--)if(x&(1LL<<i)) {if(d[i])//插入失败,异或x^=d[i];else {//插入成功,保存后退出d[i]=x;break;}}return x>0;//x>0插入成功}
}lb;
struct Node{LL a,b;bool operator <(const Node &rhs)const{return b>rhs.b;}
}node[N];
int main(){int n;scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%lld%lld",&node[i].a,&node[i].b);sort(node+1,node+1+n);LL res=0;for(int i=1;i<=n;i++)if(lb.add(node[i].a))res+=node[i].b;printf("%lld\n",res);return 0;
}

元素(洛谷-P4570)相关推荐

  1. 求螺旋矩阵任意位置元素 洛谷P2239

    之前在矩阵的模拟中,发过几篇输出螺旋矩阵的题目:输出螺旋矩阵,这几天又遇到了螺旋矩阵的新题目,不让你输出螺旋矩阵,而是给你一个下标(x,y),输出当前 矩阵元素 的值. 题目描述 一个n行n列的螺旋矩 ...

  2. 求子集元素之和(洛谷P2415题题解,Java语言描述)

    题目要求 P2415题目链接 分析 这题我觉得--当个数学题做就好了嘛. 有一个数N的情况:result = 1 * N 有两个数N1.N2的情况:result = 2 * (N1+N2) 有三个数N ...

  3. 洛谷专题训练 ——【算法1-1】模拟与高精度

    洛谷题单[算法1-1]模拟与高精度 ACM-ICPC在线模板 题单链接: [算法1-1]模拟与高精度 下面的这一坨都是洛谷题单上的东东 题单简介 恭喜大家完成了第一部分语言入门,相信大家已经可以使用 ...

  4. 洛谷P4609 [FJOI2016]建筑师 【第一类斯特林数】

    题目链接 洛谷P4609 题解 感性理解一下: 一神带\(n\)坑 所以我们只需将除了\(n\)外的\(n - 1\)个元素分成\(A + B - 2\)个集合,每个集合选出最大的在一端,剩余进行排列 ...

  5. 洛谷P3391文艺平衡树(Splay)

    题目传送门 转载自https://www.cnblogs.com/yousiki/p/6147455.html,转载请注明出处 经典引文 空间效率:O(n) 时间效率:O(log n)插入.查找.删除 ...

  6. BZOJ4943 洛谷3823 UOJ315:[NOI2017]蚯蚓排队——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4943 http://uoj.ac/problem/315 https://www.luogu.or ...

  7. [洛谷P1040] 加分二叉树

    洛谷题目链接:加分二叉树 题目描述 设一个n个节点的二叉树tree的中序遍历为(1,2,3,-,n),其中数字1,2,3,-,n为节点编号.每个节点都有一个分数(均为正整数),记第i个节点的分数为di ...

  8. 洛谷P1246C语言,codevs1246 丑数

    题目描述 Description 对于一给定的素数集合 S = {p1, p2, ..., pK}, 来考虑那些质因数全部属于S 的数的集合.这个集合包括,p1, p1p2, p1p1, 和 p1p2 ...

  9. 模拟退火总结+洛谷模板题(P1337 [JSOI2004]平衡点 / 吊打XXX)

    原来就听说过模拟退火,然后一直觉得神奇,但是没有真正的去实现这个算法. 模拟退火对TSP之类的问题很实用. 1.概念:模拟退火算法(Simulate Anneal,SA)是一种通用概率演算法,用来在一 ...

最新文章

  1. Adaboost 算法的原理与推导
  2. 忽略SQL改造等价性
  3. Mybatis面试题-日更
  4. 1.3 机器学习基础
  5. matlab去掉空的元组,python – 删除pandas中包含空元组列表的行
  6. python数据类型-列表
  7. 将照片存入百度云人脸库
  8. swift5.0 代码实现跳转页面Segue (performSegue and prepare)
  9. 【352】矩阵转置性质
  10. 使用DataDynamics.ActiveReports 创建子报表
  11. python编写自己的股票系统
  12. 慧尔视:以CRM为抓手,打造用数据说话的企业
  13. CF983E NN country
  14. GitHub每月优秀热门项目推荐:2021年11月
  15. 从硬盘中安装ubuntu 18,04
  16. 随机效应估算与固定效应估算_固定效应模型的估计原理说明.pdf
  17. 软工导论之程序流程图、N-S图(盒图)、PAD例题
  18. 白云机场查获具有充电宝功能的时尚女包
  19. 良心安利Rhino犀牛 3d模型素材网站
  20. 2022全新萝卜影视系统APP源码+超好看金色UI版

热门文章

  1. “驱网核心技术丛书”创作团队访谈
  2. How to check if a ctrl + enter is pressed on a control?
  3. 输在学历的起跑线上?没关系,10本书助你技能爆表升职加薪
  4. 可口可乐在人工智能和大数据领域的7项应用
  5. 阿里最后一面,高并发下如何设计一个秒杀系统?
  6. 四种策略确保 RabbitMQ 消息发送可靠性!你用哪种?
  7. 面试官:高并发下重启服务,接口调用老是超时,你有什么解决办法?
  8. 2021 年 6 月程序员工资统计,惨不忍睹。。。
  9. Spring 框架基础(05):事务管理机制,和实现方式
  10. 数据产品-数据可视化大作“数据大屏”