摘要:
题目大意 给一个长度为n的序列ai,定义五元组(i,j,k,l,m)满足: 1=r then exit; i:=l;j:=r; key:=a[l+random(r-l+1)]; repeat while (a[i]key) do dec(j); if ij; qso... 阅读全文
摘要:
分析 见poj 2182:http://blog.csdn.net/a_loud_name/article/details/51530711 代码 type pnode=^tnode; tnode=record lc,rc:pnode; c:longint;end;var... 阅读全文
摘要:
题目大意 N头牛从1到N编号(2=pos,那么只要在左儿子找就可以了否则要在右儿子中找,此时pos改为pos-左儿子ad。 代码 type pnode=^tnode; tnode=record lc,rc:pnode; c:longint;end;var t:pnode... 阅读全文
摘要:
题目大意 给一个固定长度为L的画板 有两个操作: C A B C:区间AB内涂上颜色C。 P A B:查询区间AB内颜色种类数。 分析 和zoj1610差不多,不解释。 A B可以A>B 代码 type pnode=^tnode; tnode=r... 阅读全文
摘要:
题目大意 一个有n个节点的树,树的每个节点可能有一个苹果或没有,有两种操作: C x 将节点x的权值改变,即如果有一个苹果删掉,否则增加一个苹果。 Q x 询问以节点x为根的子树中有多少个苹果。 数据范围:1 =y) then be... 阅读全文
摘要:
题目大意 给一个长度为n的不降序列a1,a2,a3,…,an,有q个询问,每个询问为:i j 询问在子序列ai…aj中出现最多的元素。 数据范围:1 y then exit(x) else exit(y);end;procedure insert(var t:pnode; l,r... 阅读全文
摘要:
题目大意 在一个N*N的方格中,开始每个格子里的数都是0。现在动态地提出一些问题和修改:提问的形式是求某一个特定的子矩阵(x1,y1)-(x2,y2)中所有元素的和;修改的规则是指定某一个格子(x,y),在(x,y)中的格子元素上加上或者减去一个特定的值A。现在要求你能对每个提问作出正确的回... 阅读全文
摘要:
题目大意 一行N个方格,开始每个格子里的数都是0。现在动态地提出一些问题和修改:提问的形式是求某一个特定的子区间[a,b]中所有元素的和;修改的规则是指定某一个格子x,加上或者减去一个特定的值A。现在要求你能对每个提问作出正确的回答。 分析 方法一:线段树 为线段树每个节点增加一... 阅读全文
摘要:
题目大意 给n个线段,覆盖在一条直线上,每个线段都覆盖先前的线段(如果相重叠的话),每条线短都有自己的颜色,求最后有多少种颜色和每种颜色要多少段。 分析 就是例二和例三的结合。 首先定义cover如下:cover=-1表示该区间由多种颜色组成。cover>=0表示该区间只有一种单... 阅读全文
摘要:
题目大意 x轴上有若干条不同线段,问某个单位区间[x,y]上重叠了多少条线段? 分析 加一个域count,当线段完全覆盖区间[a,b]时,把[a,b]的count域加一。 思考线段树的构造方法:当某线段能够完整覆盖某个结点所对应的区间时,则不再二分。因此要统计某个单位区间上重叠的... 阅读全文