树状数组lowbit()函数所求的就是最低位1的位置所以可以通过位运算来计算 树状数组通过 x&(x^(x-1)) 能够成功求出lowbit的原因: 首先设x=6,即110(2) 于是我们使 x-1=101 可以发现,当我们将一个二进制数减一时,从最低位一(即lowbit)开始向后的部分与之前全部相 ...
分类:
编程语言 时间:
2017-07-16 11:20:44
阅读次数:
273
Painting some colored segments on a line, some previously painted segments may be covered by some the subsequent ones. Your task is counting the segme ...
分类:
其他好文 时间:
2017-07-15 11:28:03
阅读次数:
216
x坐标排序,y坐标当权值,同一个x坐标的,y从大到小排。 求f(i)表示以i结尾的LIS以后,从后向前枚举,不断更新一个max数组,max(i)代表最长上升子序列为i时,当前的 结尾的最大值是多少。 一个元素可能在LIS里面,则说明存在一个j>i,f(j)=f(i)+1,且a(j)>a(i),就查询 ...
分类:
其他好文 时间:
2017-07-14 20:28:16
阅读次数:
228
Guessing Camels Jaap, Jan, and Thijs are on a trip to the desert after having attended the ACM ICPC World Finals 2015 in Morocco. The trip included a ...
分类:
其他好文 时间:
2017-07-13 10:36:53
阅读次数:
208
Gym - 100952A 水题,看谁的时间少谁就赢了,不然就是平局。 B HDU - 5752 错了好几次,算出来五个if就是错,用下for就对了。 CUESTC - 1599 n张图片,和成一个图片,每次合成消耗的值为两个图片社保值之和,优先队列一直取出来两个在放进去一个,直到只有一个图片就OK ...
分类:
其他好文 时间:
2017-07-10 22:04:42
阅读次数:
215
首先,我们需要了解一下数在计算机中的储存方式。 以68为例,他的二进制是(68)2=1000100. 那么-68呢?因为计算机里的整数采用补码表示(补码是原码取反加一),因此-68实际上是68按位取反,末尾加一以后的结果。如下表(忽略符号位): 原码 1 0 0 0 1 0 0 ↓ 反码 0 1 1 ...
分类:
编程语言 时间:
2017-07-04 11:10:51
阅读次数:
222
http://acm.hdu.edu.cn/showproblem.php?pid=5372 Segment Game Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Sub ...
分类:
编程语言 时间:
2017-07-02 22:08:37
阅读次数:
174
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...
分类:
编程语言 时间:
2017-06-30 15:38:18
阅读次数:
165
【算法】trie 【题解】 为了让数据有序,求lowbit无法直接排序,从而考虑倒过来排序,然后数据就会呈现出明显的规律: 法一:将数字倒着贴在字典树上,则容易发现两数的lowbit就是它们岔道结点的深度,所以先建树后对于一个数字依次把每次分岔开的另一边的size乘上权值累加答案。 法二:从高位到低 ...
分类:
其他好文 时间:
2017-06-26 21:08:07
阅读次数:
106
弱弱的战壕 描述 永恒和mx正在玩一个即时战略游戏,名字嘛~~~~~~恕本人记性不好,忘了-_-b。 mx在他的基地附近建立了n个战壕,每个战壕都是一个独立的作战单位,射程可以达到无限(“mx不赢定了?!?”永恒ftING...@_@)。 但是,战壕有一个弱点,就是只能攻击它的左下方,说白了就是横纵 ...
分类:
编程语言 时间:
2017-06-17 23:24:54
阅读次数:
458