复习了原码、反码、补码,位运算(尤其是异或,Java记作【^】) a^b=b^a a^0=a a^a=0 a^b=c > a^b^b=c^b > a=c^b 注意:位运算时,符号位也是参与运算的。 给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那 ...
分类:
其他好文 时间:
2020-06-06 21:56:13
阅读次数:
77
我们都知道,计算机的底层都是使用二进制数据进行数据流传输的,那么为什么会使用二进制表示计算机呢?或者说,什么是二进制数呢?在拓展一步,如何使用二进制进行加减乘除?二进制数如何表示负数呢?本文将一一为你揭晓。 为什么用二进制表示 我们大家知道,计算机内部是由IC电子元件组成的,其中 CPU 和 内存 ...
分类:
其他好文 时间:
2020-06-06 16:50:46
阅读次数:
58
题目传送门 分析: 一个路径的字符串能够重排序构成回文串当且仅当其中最多有一种字符数量为奇数 22种字符,按该种字符个数是否为奇数构成长度为22的二进制数 其中就只有23种情况符合要求 两条路径合并只需要按位异或了 对于每个点$x$,建立一个以从它开始向下延伸的路径的值作为下标的桶, 一个一个儿子地 ...
分类:
其他好文 时间:
2020-06-06 15:35:29
阅读次数:
68
考试考到一半还不知道是不是对的就来写题解了 t1 首先想到异或,因为相同的两个数一定异或过后为0 然后发现得到最后两个数的异或值仿佛也没用啊 便随手就是一个暴力map(测了一下内存大概是16MB,有点难受 于是想想怎么解决有异或值也没法确定的问题 便考虑到了,对于都有同一个位的数来异或,则有三种情况 ...
分类:
其他好文 时间:
2020-06-06 13:15:39
阅读次数:
44
首先,我们规定两个相邻二进制数的“差值”为对应位数不同的个数(eg:01与10的差值为2,011与100的差值为3),然后,如果我们再对相邻两个二进制数进行异或运算,它的结果将会是下面这图这样的。然后,如果我们把他们两个的值放入到树状数组中,就会发现它完美的符合树状数组的运算(差值即为树状数组中的A ...
分类:
编程语言 时间:
2020-06-06 09:23:47
阅读次数:
65
题目链接:https://codeforces.com/contest/1362/problem/B 题意 有一个大小及元素值均不超过 $1024$ 的正整数集合,求最小正整数 $k$,使得集合中的每个元素异或 $k$ 后得到的新集合与原集合相等,若这样的 $k$ 不存在输出 $-1$ 。 题解 数 ...
分类:
其他好文 时间:
2020-06-06 01:10:31
阅读次数:
80
首先我们需要了解最基本的逻辑运算,下一几张图是必须要牢牢记住的: 1、基础的逻辑运算 (简单来说:非门就是简单的对输入去反;与门是有0全为0;或门为有1全为1;异或门是两两不同为1) 2、半加法器和全加法器以及简单的4位数的加法逻辑图 Logisim的使用: 首先该软件是用于实现模拟数字电路的工具, ...
分类:
其他好文 时间:
2020-06-06 00:45:34
阅读次数:
74
1.sizeof(char)这个语句的意思是得到char类型的字节数,char*是一个指针类型,占4个字节,所以运行结果应该是4. 2.strlen和sizeof区别。 sizeof是算符,strlen是函数。sizeof可以用类型做参数,strlen只能用char*做参数。 strlen指字符的长度,chara[20]="youarea",strlen(a)=9,s
分类:
其他好文 时间:
2020-06-03 09:19:27
阅读次数:
61
迭代法,通过位运算实现两数求和bitSum(a,b) 二进制计算时,不考虑进位运算结果为 a^b 考虑进位,计算需要进位的大小: 0 & 0 = 不进位 1 & 0 = 不进位 0 & 1 = 不进位 1 & 1 = 进位 所以进位为:(a&b)<<1; 然后将不考虑进位的异或结果与进位量相加,重复 ...
分类:
其他好文 时间:
2020-06-03 00:19:42
阅读次数:
101
在给定的 N 个整数 A1,A2,…,AN 中选出两个进行异或运算,得到的结果最大是多少? Input 第一行一个整数 N。 第二行 N 个整数 Ai。 Output 一个整数表示答案。 Example 样例输入 5 2 9 5 7 0 样例输出 14 Hint 对于 100%100% 的数据,1≤ ...
分类:
其他好文 时间:
2020-06-02 13:26:34
阅读次数:
62