点击打开链接Xor SumTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 132768/132768 K (Java/Others)Total Submission(s): 291Accepted Submission(s): 151Probl...
分类:
其他好文 时间:
2014-09-29 14:22:10
阅读次数:
136
通常我们交换两个值,都是用一个临时的变量temp,拿交换a,b的值为例,通常的做法是: temp = a; a = b; b = temp; 不过利用位运算,真的是方便很多: ?假如 a = 3,b = 4。想将a和b的值互换,可以用一下赋值语句实...
分类:
其他好文 时间:
2014-09-28 19:03:46
阅读次数:
198
(1),位运算&(与,即且的意思),|(或,即或者的意思) 首先得转为二进制,正数不多说,负数就是在正数的基础上0改为1,1改为0,然后+1, 运算规则就是,位数对其,不足补零,依次按位比较, 1&1=1,1&0=0,0&0...
分类:
其他好文 时间:
2014-09-25 17:49:29
阅读次数:
139
题目地址:HDU 2276
这题的矩阵构造方式不太好想。看的题解才会的。原来是用fn=(fn-1+fn)%2的方法。
于是就构造出了一个矩阵:
1,0,0,1
1,1,0,0
0,1,1,0
0,0,1,1
然后矩阵快速幂来求。
但是取余运算是很费时间的,每次都%2会超时,于是这时就可以转化为位运算。
代码如下:
#include
#include
#include
#i...
分类:
其他好文 时间:
2014-09-24 20:23:56
阅读次数:
189
昨天笔试遇到一道题,让实现乘法的计算方法,设计方案并优化,后来总结位运算相关知识如下:在计算机中,数据是以1010的二进制形式存储的,1bytes = 8 bits,bit就是位,所以位运算就是对每个1010进行操作。位运算有&|~^>,分别是与或非异或左移右移。与:1与不变,0与为0;或:只有0或...
分类:
编程语言 时间:
2014-09-24 18:14:17
阅读次数:
242
开始看到这道题目的时候,我还以为是利用字符串表示整型数的思想,后来一看,由于是一个数的阶乘,那么,如果这个数本身就很大,那么,即使是利用字符串表示也是不合理的,所以,看了下这道题的解释,书中给出了一个公式之后就明白了题目的意思。 首先,我先把函数声明和题目要求贴出来:/*2.2 不要被阶乘吓倒*/
/*2.2.1 N!的末尾有多少个0*/
int DutCountOf0InFactori...
分类:
其他好文 时间:
2014-09-24 16:52:07
阅读次数:
147
最近一段的时间,一直在看编程之美之类的算法书籍,总的来说,wozui...
分类:
其他好文 时间:
2014-09-24 16:23:07
阅读次数:
154
题目链接:
huangjing
题意:
有一快板子,然后这个板子被分为从1到n小块,然后给了m个操作,p a b c,是将板子a,b涂成c种颜色,q a b是询问这a到b快板子中有多少种颜色。。
思路:
这个是典型的区间更新,然后涂颜色涉及到位运算,将每一种颜色表示数的各个位,那么这个问题就简单了,,但是我还是一直wa到死,因为我开了一个fbi数组保存结果,结果我把fbi数组开到ma...
分类:
其他好文 时间:
2014-09-23 19:24:55
阅读次数:
261
把一个整数减去1之后,再和原来的整数做位与运算,得到的结果相当于把整数的二进制表示中的最右边一个1变成0。 例如:1100&(1100-1)=1100&1011=1000 用这个小定理可以解决一些问题: 判断一个整数的二进制表示中有多少个1int count(int n){ int ...
分类:
其他好文 时间:
2014-09-23 10:26:24
阅读次数:
177
不用加减乘除做加法 代码(C)本文地址:http://blog.csdn.net/caroline_wendy题目: 写一个函数, 求两个整数之和, 要求在函数体内不得使用+, -, *, /四则运算符号.不能使用运算符号, 使用位运算, 第一步异或运算选位, 第二步与运算进位.代码:/* * ma...
分类:
其他好文 时间:
2014-09-22 14:55:22
阅读次数:
224