三峡大学校赛----十万桃花图(线性基)
文章目录
- 题目
- 输入描述
- 输出描述
- 解释
- 题解
- 构造线性基
- 选择最大值
- 推荐学习博客
- 闲话
题目
“桃红复含宿雨,柳绿更带朝烟。”
临近毕业,三大桃花花开十里,香色满园……小R颓然无奈,乱写桃花十万枝(绘十万幅桃花图),以此怀念母校。虽绘有桃花图十万,终是不够唯美。若汇集十万桃花图,未尝不能得到一幅三大唯美画卷。
但每一幅桃花图皆是不同, 单纯把十万只桃花汇集在一起,未必是最完美的搭配方式。小R发现,每一幅桃花图自己本身就具有一个美丽值(美丽值越高,桃花图就越是美丽), 如果把两幅桃花图搭配在一起,那得到的新桃花图的美丽值就是两幅桃花图的美丽值异或(XOR)后的结果。如果有两幅桃花图的美丽值分别为 3和5。那两幅桃花图的美丽值就是6。
小R想知道,最美的“桃花图”的美丽值是多少?
插一个小的问题:有没有觉得我们学校还是有那么点漂亮的?
输入描述
输入仅占一行,十万个数字,代表十万幅桃花图的美丽值。(桃花图的美丽值皆在0~100000000之间)
输出描述
输出最美的 “三大桃花图”的美丽值。
解释
1,假设有五幅桃花图的美丽值为1,2,3,4,5。可选择1,2,4三幅图进行异或,也可选择2,5两幅图等方式进行异或。最终结果都为7,只需输出7即可。
2,两个数进行异或(XOR)运算,即取两个数的二进制,按每一位进行异或,1异或0取1,0异或0取0,1异或1取0。(若3和5异或(3(011)异或5(101)得6(110))
题解
一开始对这个题目还是有点懵的,没有接触过
这个主要的思想是线性基
线性基具有三大性质(看懂了基本也会懂得什么叫线性基了):
- 原序列里面的任意一个数都可以由线性基里面的一些数异或得到
- 线性基里面的任意一些数异或起来都不能得到 0
- 线性基里面的数的个数唯一,并且在保持性质一的前提下,数的个数是最少的
异或的性质
- 交换律:A ^ B = B ^ A;
- 结合律:A ^ (B ^ C) = (A ^ B) ^ C;
- 恒等律:X ^ 0 = X;
- 归零律:X ^ X = 0;
- 自反:A ^ B ^ B = A ^ 0 = A;
- 对于任意的 X: X ^ (-1) = ~X;
- 如果 A ^ B = C 成立,那么 A ^ B = C,B ^ C = A;
我来分别解释这三个性质:
性质1
你可以这么理解,线性基是原集合的真子集,但是原集合的所有数都可以用线性基这个集合里面的元素来表示
理由你可以通过上面的异或的性质七来推得
性质2
意思就是线性基任何子元素进行异或都不会得到0,证明起来也挺简单的
反证法:
如果A^B ^ X=0—> A ^ B=X(两边同时异或X) 那么此时就会有一个矛盾,
因为A,B,X你都是不同时间段选择进入线性基这个集合里面,假设先进入的数是A,B 那么其实到最后X是无法进入的,所以说A,B,X不是线性基的子集.
性质3
在性质1的理解基础上,理解性质3就更快了
因为我要满足性质1,所以就导致每一个能用线性基表示的数就不能进入到这个集合里面,如果少了一个数,那么同时也会导致原集合的某些数将不能用线性基去表示,所以线性基不能多,也不能少,那么数目就是唯一.
构造线性基
void add(long long x){for(int i=30 ;i>=0;i--)//i代表的线性基X二进制的位数,从高位开始{if(x&(1<<i))//x不能为0 x的第j位为 1{if(d[i]) x^=d[i];else {d[i]=x;break;}}}
}
选择最大值
其实选的是一列数的异或后的最大值
思路就是贪心的思想
long long ans(){long long anss=0;for(int i=30 ;i>=0;i--){if((anss^d[i])>anss) anss^=d[i];}return anss;
}
推荐学习博客
博客1
博客2
闲话
好久没有写算法了,真的太生疏了,而且很多都只是记忆只有一个大概!打校赛的时候都是模拟写题!哎太菜了!为了尽量让自己的算法不冷下去,后面我会每周进行一个算法的专题的更新
大家好我是大一小菜鸡,又菜瘾还大!!!
三峡大学校赛----十万桃花图(线性基)相关推荐
- ZSTU2019校赛 Problem D Lis(线性基dp)
我的做题思路参考的是这位大佬(代码就把他的抄了一遍) https://blog.csdn.net/kzn2683331518/article/details/88768657 题面: 令LIS(S)为 ...
- 【BZOJ3569】DZY Loves Chinese II(线性基,图的连通性)
Description 神校XJ之学霸兮,Dzy皇考曰JC. 摄提贞于孟陬兮,惟庚寅Dzy以降. 纷Dzy既有此内美兮,又重之以修能. 遂降临于OI界,欲以神力而凌♂辱众生. 今Dzy有一魞歄图,其上 ...
- 【BZOJ 4671】异或图 【斯特林反演】【线性基】【贝尔数复杂度】
传送门 题意:定义两个图的异或的边集为在两张图中恰出现一次的边.给sss张nnn个点的图的集合,求异或和为连通图的子集数. s≤60,n≤10s \leq 60,n \leq 10s≤60,n≤10 ...
- YbtOJ-连通的图【结论,线性基】
正题 题目大意 给出nnn个点n+k−1n+k-1n+k−1条边的一张图,求有多少种删除若干条边的方案使得图依旧联通. 1≤n≤105,1≤k≤101\leq n\leq 10^5,1\leq k\l ...
- 2019牛客多校第四场 B xor (线性基求交)
xor 思路 题目是要求[l,r][l, r][l,r]的所有集合是否都可以得到xxx,那么显然我们可以对这[l,r][l, r][l,r]个线性基求交,然后再特判能否xxx能否插入,如果能插入,显然 ...
- 2017 ICPC西安区域赛 A - XOR ,线段树合并线性基
题目链接:A - XOR 题意;给个数组,每次询问一个区间你可以挑任意个数的数字异或和 然后在或上k的最大值 题解:线性基不知道的先看这个,一个线性基可以log的求最大值把对应去区间的线性基求出来然后 ...
- 【2019牛客暑期多校训练营(第一场) - H】XOR(线性基,期望的线性性)
题干: 链接:https://ac.nowcoder.com/acm/contest/881/H 来源:牛客网 Bobo has a set A of n integers a1,a2,-,ana1, ...
- 2017 ICPC西安区域赛 A - XOR (线段树并线性基)
链接:https://nanti.jisuanke.com/t/A1607 题面: Consider an array AA with n elements . Each of its element ...
- 【电赛】电设校赛常用电路整理
电设校赛常用电路整理 写在前面 引用与致谢 单电源供电集成运放 电压比较器 单限比较器 过零比较器 改进:限制幅度和设置偏置 滞回比较器 窗口比较器 波形发生与变换 正弦波 RC正弦振荡电路 LC正弦 ...
- 长沙学院2021校赛
长沙学院2021校赛 A.小圆前辈去上学 题目 思路 代码 B.小圆前辈的素数 题目 思路 CODE C.小圆前辈去爬山 D.小圆前辈的魔法 题目 思路 代码 E.小圆前辈的排列组合 题目 思路 代码 ...
最新文章
- 目标检测旋转增强源码
- rm删除文件显示:Operation not permitted
- Python:pathlib库使用方法
- android module驱动编程及通信
- Java_键盘输入语句
- Linux C++(QT) 下获取 CPU 序列号(processor serial number)
- 商品期货日内 Dual Thrust 交易策略
- Android实现蝴蝶动画,抖音蝴蝶特效怎么弄的?抖音最近很火的蝴蝶特效制作|安卓手机给视频添加蝴蝶特效...
- drupal与html转换,HTML转Drupal主题的方法
- Windows 10 21H2正式版镜像
- tvp5150 gm7150配置
- Echarts折线图的平移假动画
- has been blocked by CORS policy: Response to preflight request doesn‘t pass access control
- 学习笔记15--环境感知传感器技术之超声波雷达
- html代码圣诞树位置代码,html 圣诞树(示例代码)
- Python实战——ESIM 模型搭建(keras版)
- 从G1到G16 HTC Android帝国超级大盘点
- vue将json字符串转换为数组_json字符串、json对象、数组 三者之间的转换
- Illegal line end in string literal
- Philosophy