1 //Accepted 14560 KB 1532 ms 2 //线段树 区间合并 3 /* 4 0 a b 把[a, b]区间内的所有数全变成0 5 1 a b 把[a, b]区间内的所有数全变成1 6 2 a b 把[a,b]区间内的所有数全部取反,也就是说把所有的0...
分类:
其他好文 时间:
2014-09-25 20:08:27
阅读次数:
139
http://poj.org/problem?id=2155题意:提供一个M*N的矩阵,其中每一个格子中的数不是1就是0,初始时每一个格子的值为0,我们可以修改这个矩阵中的数字,每次给出矩阵的左上角坐标(x1,y1),以及右下角的坐标(x2,y2),并且将矩阵中的数字全部取反(原来是1现在变成0,原...
分类:
其他好文 时间:
2014-09-24 14:17:06
阅读次数:
204
1tr命令处理文本中的内容tr-d‘\r‘<file.txt|sort>file2.txt参数:-c取反-C-d删除字符-s浓缩重复字符特殊文件:/dev/null/dev/tty2.profile文件中的PATHPATH=$PATH:$HOME/bin永久生效3执行跟踪(看程序都做了什么)set-x打开执行跟踪set+x关闭执行跟踪4脚本语言shell编译..
分类:
其他好文 时间:
2014-09-23 03:20:24
阅读次数:
251
C语言运算符优先级优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右--()圆括号(表达式)/函数名(形参表)--.成员选择(对象)对象.成员名--->成员选择(指针)对象指针->成员名--2-负号运算符-表达式右到左单目运算符~按位取反运算符~表达式++自增运算符+...
分类:
编程语言 时间:
2014-09-19 22:28:16
阅读次数:
197
题目大意:给定一个01序列,提供三种操作:
0:把一段区间的所有元素都变成0
1:把一段区间的所有元素都变成1
2:把一段区间内的所有元素全都取反
3:查询一段区间内1的个数
4:查询一段区间内最长的一段连续的1
首先如果没有操作4这就是bitset的水题。。。多了这个,我们考虑线段树
线段树的每一个节点存修改标记和翻转标记,以及该区间的信息
虽然查询的信息都是1 但是我们要连0一...
分类:
其他好文 时间:
2014-09-18 19:03:34
阅读次数:
171
题目链接:hdu 5014 Number Sequence
题目大意:给定n,表示有0~n这n+1个数组成的序列a,要求构造一个序列b,同样是由0~n组成,要求∑ai⊕bi尽量大。
解题思路:贪心构造,对于n来说,找到n对应二进制的取反对应的数x,那么从x~n之间的数即可两两对应,然后x-1即是一个子问题。
#include
#include
#include
using n...
分类:
其他好文 时间:
2014-09-15 21:25:59
阅读次数:
207
1 具体是先把十进制的数先转换成二进制的原码, 按位取反最后一位加一,然后“按权展开”,得到十进制的结果, 如果第一位是1(指转换成二进制的原码中的第一位),说明故是负数所以要在结果前面加上负号-。 例子: int x=20; printf("%d\n",~x); 结果是 -21 求解过程:x=.....
分类:
编程语言 时间:
2014-09-09 18:15:09
阅读次数:
266
最近在看集合源码,发现ArrayDeque里面用到了大量的&运算,这牵扯到了二进制。突然发现自己对负数的二进制有点模糊了,对此进行了一些支持补充。
首先我们要对原码、反码和补码有个了解:
1、所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
2、反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
...
分类:
编程语言 时间:
2014-09-09 16:11:58
阅读次数:
257
问题:printf("%x,%d\n",~7,~7);解:十进制数字7的二进制码00000000000000000000000000000111按位取反运算~711111111111111111111111111111000所以printf("%x\n",~7);//十六进制输出:fffffff811111111111111111111111111111000的最高八位符号位(11111111,表示负数),有符号整..
分类:
编程语言 时间:
2014-09-09 13:50:59
阅读次数:
231
按位取反,简单地说就是二进制1变0,0变1由于scanf是有返回值的,且返回值为int型特别的此处用法导致只有scanf返回-1,循环才会结束,也就是要返回EOF while (~scanf("%d%d",&n,&m))等效于 while (scanf("%d%d",&n,&m)!=EOF)
分类:
编程语言 时间:
2014-09-09 11:30:28
阅读次数:
344