今天有一个枚举的题目的代码是这样的: 重点在于maxXor这个函数的实现,枚举两个数字,其中maxr保存了最大值的 i 异或 j , 可是这个程序执行结果大大出乎意外-_-. 然后就把 i 异或 j 的结果临时保存在int,进行比较,程序正确的执行了。原来是被操作符优先级坑到了。位操作的优先级...
分类:
编程语言 时间:
2014-08-21 20:53:24
阅读次数:
199
题意:找出现次数不同于其他数的数。
超时了一次,后来知道了位运算。。。长见识了
0^0 =0
0^1=1
1^0=1
1^1=0
0^1^1 = 0
可以发现 任何数异或0还是他本身。
一个数异或另一个数偶数次还是他本身。
代码(位运算都600+ms):
#include
#include
int main()
{
int a, b...
分类:
其他好文 时间:
2014-08-21 11:34:14
阅读次数:
173
题意:从n个数中,选择一些数,使得异或最大。 1 #include 2 #include 3 #include 4 #define ll __int64 5 using namespace std; 6 7 ll c[110][110]; 8 int n; 9 ll cc;10 11 voi...
分类:
其他好文 时间:
2014-08-20 19:27:02
阅读次数:
253
C语言中提供了6个位操作符。这些运算符只能作用于整形操作数,即只能作用于带符号或者无符号的char、short、int、long类型: & 按位与(AND) | 按位或(OR) ^ 按位异或(XOR) << 左移 >> 右移 ~ 按位取反(一元...
分类:
其他好文 时间:
2014-08-19 16:58:45
阅读次数:
173
位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。1.与运算符与运算符用符号“&”表示,其使用规律如下:两个操作数中位都为1,结...
分类:
编程语言 时间:
2014-08-19 12:37:04
阅读次数:
186
位运算符包括:| 按位或 OR,& 按位与 AND,^ 按位异或 XOR,~ 取反 NOT,> 右移 Right Shift,等等。本篇体验位运算符在C#中的应用。主要包括: ○ 进制转换 ※ 十进制转换成二进制 ※ 二进制转换成十进制○ | 按位或操作符○ & 按位与操作符○ ^ 按位异或操作符 ...
分类:
其他好文 时间:
2014-08-19 09:19:53
阅读次数:
377
问题1:异或交换两个数假设x=2;y=3,我们的目标是(没有蛀牙!!)交换x,y的值;利用异或的特殊性:x^x=0即两个相同数字异或后值为0;解决:令x=x^y=2^3令y=x^y=x^y^y=2^3^3=2(此时x=x^y)令x=x^y=x^y^2=2^3^2=3(此时x=x^y;y=2)问题2:...
分类:
其他好文 时间:
2014-08-18 21:55:02
阅读次数:
214
题目描述:
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
输入:
输入可能包含多个测试样例。
对于每个测试案例,输入为两个整数m和n(1
输出:
对应每个测试案例,输出m+n的值。
样例输入:
3 4
7 9
样例输出:
7
16
代码:
思路:
1.先将两个数字异或得到...
分类:
其他好文 时间:
2014-08-17 14:22:22
阅读次数:
164
关于冒泡排序时间复杂性,大家都知道最坏情况下为O(n^2)为什么最好情况下为O(n),很多人有疑问,下面我们就来分析一下:
首先大家看看下面两种冒泡排序的方法:
方法一:
//冒泡排序
template class T>
void Bubble(T a[],int n)
{
//把数组a[0:n-1]中最大的元素冒泡移到右边
for(int i=...
分类:
其他好文 时间:
2014-08-17 09:11:52
阅读次数:
199
题意:给你一个01矩阵,有两种操作:
第一种: 把a(i,j)的周围四个都异或一下
第二种: 把a(i, j)的周围四个和a(i,j)都异或一下
求把矩阵变成全0矩阵的最少操作次数
思路:如下图所示的轮廓线dp,逐格递推的,cur为当前决策的格子,红色线就是轮廓线,轮廓线以上的格子的操作状态都已经确定了,而对下面状态有影响的只有黄色格子,每个格子保存的是格子当前的数和它自己操作了多...
分类:
其他好文 时间:
2014-08-15 19:41:39
阅读次数:
227