原题链接

大意:

给出 n 个 非负整数,这 n 个非负整数可以被分为任意组,定义每组的权值为每组的所有数的异或和,求出最小的所有组的权值和;

思路:

我们需要一个异或的一个非常重要的性质

a ^ b ≤ a + b

当我们把 n 个数 分为 n 组的时候权值就是所有数的加和,这时权值最大,我们每找两个数做一次异或操作权值和就小一点,显而易见,所有组权值和最小的时候就是一次把所有数分为一组,所有数做异或操作,这时就不会有组与组之间的加和操作,取而代之的是异或操作,保证了权值和最小;

#include<bits/stdc++.h>
using namespace std;#define fi first
#define se second
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
typedef long long ll;
typedef unsigned long long ull;
const int N = 1e4+10;
const int NN = 1e6+10;
const int pp = 1e9+9;
typedef pair<int,int>PII;ll n,ans,t;signed main()
{cin>>n;cin>>ans;for(int i=2;i<=n;i++){cin>>t;ans^=t;}cout<<ans;}

反思

想了想,假设 n 个数 是 n 1 , n 2 . . . . . . n n n_1,n_2......n_n n1​,n2​......nn​
必定满足
n 1 ⊕ n 2 ⊕ . . . ⊕ n n < = 混合操作 < = n 1 + n 2 + . . . + n n n_1 ⊕ n_2 ⊕...⊕n_n<= 混合操作<=n_1+n_2+...+n_n n1​⊕n2​⊕...⊕nn​<=混合操作<=n1​+n2​+...+nn​

P5514 [MtOI2019]永夜的报应(位运算)相关推荐

  1. 洛谷 P5514 [MtOI2019]永夜的报应【数学/贪心】

    题目背景 在这世上有一乡一林一竹亭,也有一主一仆一仇敌.有人曾经想拍下他们的身影,却被可爱的兔子迷惑了心神.那些迷途中的人啊,终究会消失在不灭的永夜中-- 题目描述 蓬莱山 辉夜(Kaguya)手里有 ...

  2. P5514 [MtOI2019]永夜的报应(贪心)

    P5514 [MtOI2019]永夜的报应(贪心) 思路 因为对于两个正整数 a , b a,b a,b a ⊕ b ≤ a + b a\oplus b\le a+b a⊕b≤a+b 所以当两个分组的 ...

  3. $Luogu$ $P5514$ $[MtOI2019]$ 永夜的报应

    链接 背景 \(disangan233\) ,迷途之家 \(2019\) 联赛 \((MtOI2019)\) \(T1\) , \(Luogu\) \(P5514\) 题意 给定 \(n\) 个 \( ...

  4. P5514 [MtOI2019]永夜的报应 题解

    博客园同步 原题链接 简要题意: 给定一个长度为 n n n 的序列 a a a,你需要将其分为若干组,使得每一组的异或之和最小.求这个最小值. 实际上这题是个结论题. 先考虑一个问题:对于一个数 x ...

  5. P5514 [MtOI2019]永夜的报应【题解】

    这是一道简单的数论(贪心)题 题目大意: 对于非负整数数列: a 1 , a 2 , a 3 . . . . . . a n a_1,a_2,a_3......a_n a1​,a2​,a3​..... ...

  6. [MtOI2019]永夜的报应

    [MtOI2019]永夜的报应 这个题猛地一看其实是感觉非常难的. 但是,冷静分析一下,你会发现: 因为\(x \: xor \: y \le x + y\),所以说一个子序列一个子序列地异或和加起来 ...

  7. 洛谷 题解 P5514 【[MtOI2019]永夜的报应】

    这道题的题面是幌子,其实稍稍验证一下就好了:(我在考场上竟将题面当作故事来读) 在样例 1 中, 1 xor 2 xor 5 = 6 ,而在样例 2 中, 9 xor 18 xor 36 xor 25 ...

  8. 【洛谷P5514】永夜的报应【模拟】

    题目大意: 题目链接:https://www.luogu.org/problem/P5514 给定一个长度为nnn的数列,把每一个数字分至一个组内.求每个组异或和之和的最小值. 思路: 因为亦或是不进 ...

  9. [MtOI2019]永夜的报应 题解

    题面 题面说的乱糟糟的看起来似乎是个可持久化线性基: 然而~ 一个式子搞定一切: a^b<=a+b 那么把所有数异或起来便是答案: #include <bits/stdc++.h> ...

最新文章

  1. iOS编码:如何创建gbk编码
  2. R语言使用ggplot2包的快速可视化函数qplot绘制基础直方图实战
  3. Codeforces 675C Money Transfers (思维题)
  4. 悠中选优,畅享马尔代夫与塞舌尔之旅
  5. 《嵌入式Linux与物联网软件开发——C语言内核深度解析》一2.4 位运算构建特定二进制数...
  6. NXP(I.MX6uLL)DDR3实验——DDR3初始化、校准、超频测试
  7. Concurrent connection limit
  8. python中setpos_如何用类初始化Python中的多个turtle
  9. iPad 2硬件评测:从CPU/GPU性能说开去…
  10. 批量删除Windows7中隧道适配器的方法
  11. iOS 用Swipe手势和动画实现循环播放图片
  12. JVM 晋升到老年代的动态年龄判断
  13. 6.18-GTest
  14. MySQL下载安装教程
  15. python儿童编程入门-一款儿童编程入门的理想工具——PythonTurtle
  16. electron 剪贴板 截图_利用 Electron 开发快速截图工具(二)
  17. android ip v6 teredo,win7系统通过teredo连接IPv6的操作方法
  18. 涂抹mysql_《涂抹MySQL:跟着三思一步一步学MySQL》PDF版本下载
  19. MIT.6.00.1X --Week 3 Lecture 5 -- 'Divid and conqer' algorithm 分而治之
  20. Android原生Switch禁止滑动实现

热门文章

  1. [IKNP03] Extending Oblivious Transfers Efficiently
  2. 爬虫抓取段子模拟订阅功能
  3. sftp上传文件服务器,使用SFTP上传文件到服务器的简单使用
  4. 说了那么多,到底什么是「神经搜索」?
  5. 【BZOJ2149】拆迁队(斜率优化DP+CDQ分治)
  6. Docker进阶篇 - (一)Docker Compose
  7. IBM P系列日常管理——服务器的故障分析和处理
  8. 行列式的计算机应用答辩ppt,行列式的计算方法及应用毕业答辩论文.doc
  9. iphone 模拟滑动_如何在iPhone键盘上禁用滑动输入
  10. opencv 计算二维矢量的幅值—magnitude()函数