HDU 5014 Number Sequence ( 构造 )题目意思:给出一个数列 由0 - n 组成然后需要构造一个数列 (也是由0-n组成),使得 sum(A[i] ^ B[i])的值最大。分析:异或不能出现比这个数大的情况,,所以要从大的数往前找。现计算出当前判断数的二进制位的位数m,然后再...
分类:
其他好文 时间:
2014-10-20 21:02:32
阅读次数:
136
& 与| 或^ 异或~ 取补> 右移其中取补只有一个操作数而其它的位操作符都有两个操作数。这些运算都不会产生溢出位。操作符的操作数为整型或者是可以转换为整型的任何其它类型。与运算操作数按二进制位进行与运算,运算规则为:0&0=00&1=01&0=01&1=1这说明除了两个位均为1, 与运算结果为1。...
分类:
其他好文 时间:
2014-10-20 17:09:28
阅读次数:
149
交换两个变量的思路主要有两种:借助或不借助暂时变量。详细操作时又有下面三种简单算法:1、借助暂时变量的算法#include int main(void){ int a, b, t; scanf("%d%d", &a, &b); t = a; a = b; b = t; printf("a = %d,...
分类:
其他好文 时间:
2014-10-20 13:24:01
阅读次数:
119
题目链接下午比赛的时候没有想出来,其实就是int型的数分为30个位,然后按照位来排列枚举。题意:求n个数里面,取i个数异或的所有组合的和,i取1~n分析:将n个数拆成30位2进制,由于每个二进制位异或后相加和原来的数异或相加是一样的,所以只需要对每一位累加计算,用组合数学取数就行了,奇数个异或得1,...
分类:
其他好文 时间:
2014-10-19 22:55:34
阅读次数:
236
http://acm.hdu.edu.cn/showproblem.php?pid=4810把每一个数转化二进制,然后统计n个数在每一位的1的个数。奇数个1异或才能得1,然后用组合数,计算。 1 #include 2 #include 3 #include 4 using namespace ...
分类:
其他好文 时间:
2014-10-19 19:47:46
阅读次数:
271
首先有两个自定的转换函数: function myStrToHex(s:string):string; //字串转16进制 var TmpStr:string; i:integer; begin TmpStr:=''; for i:=1 t...
有这样一个简单的问题:给定n-m+2(或n-m)个正整数组成的乱序序列,其元素是m到n(n>m>=1)中的互不相同的正整数,有且只有一个是重复(或缺失)的。如何找到那个数?(这里假定缺失的数不是n或m)由Ivony提出的异或算法想到的。1、由于[m,n]这段闭区间的异或算法暂时没有想到,所以就用[1...
分类:
其他好文 时间:
2014-10-17 21:45:16
阅读次数:
169
http://poj.org/problem?id=1222竟然我理解了两天。。。。。首先先来了解异或方程组(或者说mod2方程组,modk的话貌似可以这样拓展出来)对于一些我们需要求出的变量a[1~n],我们现在知道n个方程组(有解的情况下),每个方程均是类似原版消元那样带了个系数的,只不过这个系...
分类:
其他好文 时间:
2014-10-17 13:24:33
阅读次数:
235
题意:有一个无向图,边带权,从点1开始,每次随机选择与这个点相邻的一条边走到另一个点,直到走到点n.权值为所有走过的边的异或和(若一条边经过多次则被异或多次),求权值的期望值。
思路:将每一位拆开。那么相当于边上的权值只有0,1.
由于到达n就立即停止,我们定义f[i]表示从i到达n的期望值。
那么显然f[n]=0,对于i!=n,我们列出其转移方程:
for all x near ...
分类:
其他好文 时间:
2014-10-17 12:08:39
阅读次数:
238
本文总结了大家都知道的三种变量交换的方法,就适用来说我认为借助临时变量的方法已经足够好了,另外两种方法只是总结出来用来提高阅读程序的能力。...
分类:
其他好文 时间:
2014-10-17 10:32:06
阅读次数:
220