Codeforces Round #263 (Div. 1)
A:贪心,排个序,然后从后往前扫一遍,计算后缀和,之后在从左往右扫一遍计算答案
B:树形DP,0表示没有1,1表示有1,0遇到0必然合并,0遇到1也必然合并,1遇到0必然合并,1遇到1,必然切断,按照这样去转移即可
C:树状数组,再利用启发式合并,开一个l,r记录当前被子左右下标,和一个flip表示是否翻转
代码...
分类:
其他好文 时间:
2014-08-30 12:38:09
阅读次数:
281
树状数组的引入:
对于查询和修改要求差不多,使用树状数组可以达到logN的复杂度
红色矩形表示的数组C就是树状数组.这里,C[i]表示A[i-2^k+1]到A[i]的和,而k则是i在二进制时末尾0的个数,或者说是i用2的幂方和表示时的最小指数。
所谓的k,也是该节点在树中的高度.
修改第i个元素,为了维护数组C的意义,需要修改C[i]以及C[i]的全部祖先,而非C[i]的祖先的节点则对...
分类:
其他好文 时间:
2014-08-30 11:15:39
阅读次数:
224
Crazy Thairs
Time Limit: 3000MS
Memory Limit: 65536K
Total Submissions: 6598
Accepted: 1636
Description
These days, Sempr is crazed on one problem named Crazy Thair...
分类:
其他好文 时间:
2014-08-29 18:25:32
阅读次数:
201
前段时间遇到线段树过不了,树状数组却过了的题。(其实线段树过得了的)回忆了下树状数组。 主要原理,还是二进制位数,每一项的和表示其为它的前((最后一位1及其后)的二进制数)和,可从二进制图来看。(用线段树想一想其实只是线段树编号不同而已,本质类似)写了下二维树状数组,几乎和一维相同,也没必要不同。....
分类:
其他好文 时间:
2014-08-29 02:51:50
阅读次数:
238
题目链接:uva 11423 - Cache Simulator
题目大意;模拟一个cache,4种操作:
ADDR x:访问一个x地址RANGE x y n:访问x + y * k (0≤kSTAT:输出每个大小的cache,MISS的次数END:结束
按照从小到大的顺序给cache的大小。
解题思路:因为访问的次数不会大于1e7次,所以预先处理出访问的序列,然后对于每个...
分类:
其他好文 时间:
2014-08-27 18:49:38
阅读次数:
283
题目链接:uva 10869 - Brownie Points II
题目大意:给定若干点,第一个人选中一个存在点的横坐标,第二个人选中该横坐标上的一点,以该点作原点建立坐标系,一、三象限的点属于第一个人,二、四象限属于第二个人,坐标轴上的不属于任何人。问说在第一个人获得点最多的情况下第二个人可能获得多少点。
解题思路:将所有点按照x坐标从小到大,y坐标从大到小排序,这样从左向右可以处...
分类:
其他好文 时间:
2014-08-27 18:48:28
阅读次数:
252
题目链接:uva 1406 - A Sequence of Numbers
题目大意;给定n个数,有两种操作:
Q x:计算与2x取且不为0的数的个数C x:每个数加上x
输出所有Q操作的和。
解题思路:因为x最大为15,所以开16个树状数组,fenx[x]记录的是每个数取模2x+1的情况,然后有一个add值标记总共加了多少。根据add值确定原先数的范围。
#include ...
分类:
其他好文 时间:
2014-08-27 18:47:58
阅读次数:
242