码迷,mamicode.com
首页 >  
搜索关键字:c语言 交换变量 异或 不创建临时变量    ( 3515个结果
[后缀数组+二分+rmq] hdu 5008 Boring String Problem
有点小可惜这道题,当时整个思路都想到了,就是最后找最左下标的时候不会处理, 然后结束完发现直接暴力就可以了,想到了可是不敢写,10w个a直接就T了啊。。。 数据太弱了,敢写就过系列啊 T T。 然后希望有大神提供完美思路! 题意: 给一个字符串 然后n次询问 对于每一次询问给一个v 然后问第 l⊕r⊕v+1小的子串的区间   (⊕代表异或) 然后输出l r  这里的l r 就是上...
分类:其他好文   时间:2014-09-16 17:31:32    阅读次数:238
hdu 5014(贪心+异或 西安网络赛)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5014 Number Sequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 681    Accepted Submis...
分类:其他好文   时间:2014-09-16 16:04:00    阅读次数:220
poj 2777
题意:两个操作:c l r x l到r之间的颜色变成x q l r 询问l到r有多少种颜色思路:记一个整数表示哪种颜色是否取了 这里真的是煞笔了,看到这一题第一直觉是异或,但是A^A=0,相同的肿么办..然后搜题解....反应了一个下午,发现有按位或这样神气的存在 1|1=1 1|0=1 0|1=1...
分类:其他好文   时间:2014-09-16 15:51:20    阅读次数:134
POJ 1704 Georgia and Bob(nim博弈论)
题目地址:POJ 1704 这个题实在巧妙。。居然这样就可以转化成了经典的nim模型。 这题可以从左往右两两配对,如果是奇数个的话,就让最左边的与0配对。然后每当对方移动某一对的前一个,你总可以移动该对的后一个来移动回来。所以这是没有影响的。有影响的只是每一对中间的空格数。这就转化成了((n+1)/2)堆石子的游戏,每一堆的石子个数是每一对点之间的空格数。然后用异或求解。 代码如下: #i...
分类:其他好文   时间:2014-09-15 22:56:19    阅读次数:270
2014 网选 5014 Number Sequence(异或)
1 /* 2 题意:a, b两个序列,规定由[0, n]区间的数! 3 求 a[i] ^ b[i] 的和最大! 4 5 思路:如果数字 n的二进制有x位, 那么一定存在一个数字m,使得n^m的所有二进制位 6 都是1,也就是由x位1!这样下去的到的值就是...
分类:其他好文   时间:2014-09-15 22:43:39    阅读次数:226
博弈论1
博弈论(一):Nim游戏重点结论:对于一个Nim游戏的局面(a1,a2,...,an),它是P-position当且仅当a1^a2^...^an=0,其中^表示位异或(xor)运算。Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的结论,由这个游戏开始了解博弈论恐怕是最合...
分类:其他好文   时间:2014-09-15 22:30:49    阅读次数:291
HDU-5014 Number Sequence 最大异或和
每个数想要得到最大的异或值,就肯定是在二进制上是互补的,所以暴力找出互补的数。 #include #include #include #include #include #include #define LL long long using namespace std; int a[110000]; int n; int link[110000]; int bit(int n) { ...
分类:其他好文   时间:2014-09-15 17:45:49    阅读次数:197
HDU 1850 Being a Good Boy in Spring Festival(nim博弈)
题目地址:HDU 1850 这个博弈论异或这个地方感觉真绕,仔细想了一下,终于把它给理清楚了。总结一下之前不太理解的: 1:在当前操作中,只要可以达到某个必败态,那这个点一定是必胜态的,因为要想获胜,肯定会选择必败态的操作。 2:只有当所有值的异或值为0的时候,才是必败态,所以说对于N堆的nim游戏来说,第一步的操作对于每一堆来说只能有至多一种可以形成必败态。因为另外(n-1)堆的异或值是唯...
分类:编程语言   时间:2014-09-15 15:57:09    阅读次数:187
确定需要改变几个位,才能将整数A转变为整数B
1 /*确定需要改变几个位,才能将整数A转变为整数B 2 * 找出两个数之间位有哪些不同,可以使用异或操作即可 3 * 在异或操作的结果中,每个1都代表A和B相应位是不一样的 4 * 因此只要数一数异或之后又几个位为1就可以知道需要改变几个位 5 * 6 * */ 7 public c...
分类:其他好文   时间:2014-09-15 15:46:49    阅读次数:121
hdu-5014-Number Sequence-XiAn网络赛1008-水题
思路:既然是求两个数的异或运算之和,且由于数字不重复,那么肯定两个数异或的结果数字越大越好,即异或后从ai二进制的最高位后全是1。具体思路看代码:AC代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 using nam...
分类:其他好文   时间:2014-09-15 12:54:28    阅读次数:198
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!