码迷,mamicode.com
首页 >  
搜索关键字:c语言 交换变量 异或 不创建临时变量    ( 3515个结果
一个简单有趣的题(4个变量找出取走的数)
题目:读入10000000(10^7)个无符号32位整数,从中取走一个。告诉你剩下的9999999个整数。找出取走了哪一个。要求:代码最多只能用4个无符号32位整型变量。解法:异或运算满足交换率。故有:a = a^(b^b)^(c^c)^....^(d^d) = (a^b^c^....^d)^(b^...
分类:其他好文   时间:2014-09-26 18:12:58    阅读次数:125
HDU 4810 Wall Painting【二进制+异或+暴力枚举】
给出n个数 求从这n个数取k个数异或,所有情况得到的值(Cnk个值(可能有些相同))全加起来的值是多少 k从1到n 输出这n个数     这题一开始想毫无思绪 也没有说这n个数的大概范围,想用背包来着本来   结果发现它是这么解的 就样例来说,把四个数1,2,10,1拆开,当前是取k个数 0001 0010 1010 0001 对第四位来说,如果某些方案是取k个数异或...
分类:其他好文   时间:2014-09-25 14:10:58    阅读次数:185
HDU 5014 贪心
2014 ACM/ICPC Asia Regional Xi'an Online 枚举贪心 从最大的一个数开始找能使它的异或值最大的一个数。 #include "stdio.h" #include "string.h" int main() { int n,i,j,sum; __int64 ans; int b[100010],a[100010]; w...
分类:其他好文   时间:2014-09-24 20:42:37    阅读次数:182
C++基础-位运算
昨天笔试遇到一道题,让实现乘法的计算方法,设计方案并优化,后来总结位运算相关知识如下:在计算机中,数据是以1010的二进制形式存储的,1bytes = 8 bits,bit就是位,所以位运算就是对每个1010进行操作。位运算有&|~^>,分别是与或非异或左移右移。与:1与不变,0与为0;或:只有0或...
分类:编程语言   时间:2014-09-24 18:14:17    阅读次数:242
HDU-1907-John
题目链接point this这一题有点类似于NIM游戏,当符合一定条件的时候,先手可必胜。这里用到了一个规律。把每一堆的数目进行异或运算(每一堆的数目都是1除外),最后的结果有两种,为0或不为0,若为0则各堆的二进制位相加不进位以后所得到的数的各位数一定是一个偶数。我们称结果为0的情况为平衡状态,如...
分类:其他好文   时间:2014-09-23 22:44:05    阅读次数:206
HDU 5039 Hilarity 线段树
首先对于一棵树,如果要求点u->v路径上的边权值的1的个数为奇数的话,相当与异或和为一,而u->v的值始终与1->u xor 1->v 相等有了这个性质之后,直接选一个点为根,dfs遍历整颗树,就可以求出根节点到其他所有节点路径上的异或和了。然后题目所要求的方案数相当与从所有为0的路径中和所有为1的...
分类:其他好文   时间:2014-09-23 22:38:15    阅读次数:262
C语言中的运算符优先级
为了理解方便,将优先级分为六大类,速记为《非123赋》:非运算符,单目运算,双目运算,三目运算,赋值运算,逗号运算; 双目运算符打油诗:乘除加减左右移;大等小等等不等;位与异或按位或;逻辑与,逻辑或。 结合方向根本不用记,理解就行。...
分类:编程语言   时间:2014-09-23 22:13:25    阅读次数:247
hdu 5011 Game 博弈
n堆石子,两个人轮流取,每次可以在一堆石子中取至少一个石子,并可以选择将剩下的石子分成任意的两堆,最后取走的获胜,问谁会获胜。比裸nim多了一个条件就是可以将剩下的石子分开,原来是1的位拆分后变成一个1和一个0,原来是0的拆分后变成1和1或者0和0,都不改变nim的必胜或必败状态,所以直接异或。#i...
分类:其他好文   时间:2014-09-23 20:02:15    阅读次数:162
hdu 2444 The Accomodation of Students 判断时候构成二分图 + 最大匹配
此题就是求最大匹配。不过需要判断是否构成二分图。判断的方法是人选一点标记为红色(0),与它相邻的点标记为黑色(1),产生矛盾就无法构成二分图。声明一个vis[],初始化为-1。通过深搜,相邻的点不满足异或关系就结束。如果没被标记,就标记为相邻点的异或。 1 #include 2 #inc...
分类:其他好文   时间:2014-09-22 15:50:32    阅读次数:199
编程算法 - 不用加减乘除做加法 代码(C)
不用加减乘除做加法 代码(C)本文地址:http://blog.csdn.net/caroline_wendy题目: 写一个函数, 求两个整数之和, 要求在函数体内不得使用+, -, *, /四则运算符号.不能使用运算符号, 使用位运算, 第一步异或运算选位, 第二步与运算进位.代码:/* * ma...
分类:其他好文   时间:2014-09-22 14:55:22    阅读次数:224
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!