P5514 [MtOI2019]永夜的报应
题目背景
在这世上有一乡一林一竹亭,也有一主一仆一仇敌。
有人曾经想拍下他们的身影,却被可爱的兔子迷惑了心神。
那些迷途中的人啊,终究会消失在不灭的永夜中……
题目描述
蓬莱山 辉夜(Kaguya)手里有一堆数字。
辉夜手里有 nn 个非负整数 a1,a2⋯an,由于辉夜去打 Gal Game 去了,她希望智慧的你来帮忙。
- 你需要将这些数分成若干组,满足 nn 个数中的每一个数都恰好被分到了一个组中,且每一组至少包含一个数。
定义一组数的权值为该组内所有数的异或和。请求出一种分组方案,使得分出的所有组数的权值之和最小,输出权值之和的最小值。
输入格式
输入的第一行包含一个正整数 n,表示给定的非负整数的数量。
接下来一行包含 n 个非负整数a1,a2⋯an。
输出格式
输出一行一个整数表示答案。
输入输出样例
输入 #1
3 1 2 5
输出 #1
6
输入 #2
6 9 18 36 25 9 32
输出 #2
15
太菜了不懂异或和的一些性质,记一下a^b<=a+b,为什么呢
对每一位进行分析:
1^1=0 1+1=2
1^0=1 1+0=1
0^1=1 0+1=1
0^0=0 0+0=0
所以对于每个数来说,a^b<=a+b
#include<bits/stdc++.h>
using namespace std;
int n,a,x;
int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>n;cin>>a;for(int i=2;i<=n;i++){cin>>x;a=a^x;}cout<<a;return 0;
}
P5514 [MtOI2019]永夜的报应相关推荐
- 洛谷 P5514 [MtOI2019]永夜的报应【数学/贪心】
题目背景 在这世上有一乡一林一竹亭,也有一主一仆一仇敌.有人曾经想拍下他们的身影,却被可爱的兔子迷惑了心神.那些迷途中的人啊,终究会消失在不灭的永夜中-- 题目描述 蓬莱山 辉夜(Kaguya)手里有 ...
- P5514 [MtOI2019]永夜的报应(贪心)
P5514 [MtOI2019]永夜的报应(贪心) 思路 因为对于两个正整数 a , b a,b a,b a ⊕ b ≤ a + b a\oplus b\le a+b a⊕b≤a+b 所以当两个分组的 ...
- $Luogu$ $P5514$ $[MtOI2019]$ 永夜的报应
链接 背景 \(disangan233\) ,迷途之家 \(2019\) 联赛 \((MtOI2019)\) \(T1\) , \(Luogu\) \(P5514\) 题意 给定 \(n\) 个 \( ...
- P5514 [MtOI2019]永夜的报应 题解
博客园同步 原题链接 简要题意: 给定一个长度为 n n n 的序列 a a a,你需要将其分为若干组,使得每一组的异或之和最小.求这个最小值. 实际上这题是个结论题. 先考虑一个问题:对于一个数 x ...
- P5514 [MtOI2019]永夜的报应【题解】
这是一道简单的数论(贪心)题 题目大意: 对于非负整数数列: a 1 , a 2 , a 3 . . . . . . a n a_1,a_2,a_3......a_n a1,a2,a3..... ...
- P5514 [MtOI2019]永夜的报应(位运算)
原题链接 大意: 给出 n 个 非负整数,这 n 个非负整数可以被分为任意组,定义每组的权值为每组的所有数的异或和,求出最小的所有组的权值和: 思路: 我们需要一个异或的一个非常重要的性质 a ^ b ...
- [MtOI2019]永夜的报应
[MtOI2019]永夜的报应 这个题猛地一看其实是感觉非常难的. 但是,冷静分析一下,你会发现: 因为\(x \: xor \: y \le x + y\),所以说一个子序列一个子序列地异或和加起来 ...
- 洛谷 题解 P5514 【[MtOI2019]永夜的报应】
这道题的题面是幌子,其实稍稍验证一下就好了:(我在考场上竟将题面当作故事来读) 在样例 1 中, 1 xor 2 xor 5 = 6 ,而在样例 2 中, 9 xor 18 xor 36 xor 25 ...
- 【洛谷P5514】永夜的报应【模拟】
题目大意: 题目链接:https://www.luogu.org/problem/P5514 给定一个长度为nnn的数列,把每一个数字分至一个组内.求每个组异或和之和的最小值. 思路: 因为亦或是不进 ...
- [MtOI2019]永夜的报应 题解
题面 题面说的乱糟糟的看起来似乎是个可持久化线性基: 然而~ 一个式子搞定一切: a^b<=a+b 那么把所有数异或起来便是答案: #include <bits/stdc++.h> ...
最新文章
- 强化学习是针对优化数据的监督学习?
- 外贸常用术语_外贸英文用语,为邮件增光添彩
- 因缺失log4j.properties 配置文件导致flume无法正常启动。
- Windows Server 2008 R2远程设置选项灰色解决方法
- tableau可视化数据分析60讲(七)-工作表操作(长篇干货建议收藏!)
- java 编译开关_java – 字符串是关于开关的数字类型,并始终编译为lookupswitch?
- C++ Q16: dereferencing
- which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mod
- DCI架构是如何解决DDD战术建模缺点的?
- python机器学习之数据集(查看数据,划分训练集、测试集)
- 苹果手机键盘html代码大全,iPhone拨号键盘中的*和#有什么作用 iPhone特殊代码分享...
- matlab语言定义变量类型,matlab定义变量-MATLAB,变量
- 《私募股权基金投资基础知识》---第一章
- 怎样批量替换Word中的文字?这一招Word文字替换技巧你会吗
- php receivemail下载,php receivemail,php mail,preceive
- 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(8)
- 聚合API文档阅读帮助
- contourf的colorbar如何设置显示范围
- 先验概率与后验概率及贝叶斯公式
- 怎么用计算机算出一个人的生日,怎样才能在网上查到一个人的生日
热门文章
- 数据库管理员、系统分析员、数据库设计人员,应用程序员的职责是什么?
- android u盘怎么打开文件夹图标不显示不出来了,U盘图标显示不正常怎么办,U盘图标怎么显示出来...
- Visual SourceSafe 2005 简体中文语言包
- 从Altium官方网站下载库文件
- java导出文件到excel文件怎么打开_java导入、导出Excel文件
- windows下安装Bugzilla 2.18
- Windows备份文件夹脚本.bat
- 一次看过瘾!中国摩博会的“钢铁怪兽”你最爱哪辆?
- android 代码设置 键盘适应_MTK6577+Android之按键(key)修改
- python span 抓取_如何用python爬取两个span之间的内容