摘要:
平面中n个点,求每个点左下点的数量,直接上树状数组,题目数据以y为第一关键字,x为第二关键字升序排列了,所以只需从1到n依次插入横坐标,统计之前的小于当前点的横坐标的点数即可,注意树状数组上限是坐标最大值,不是n,同时坐标还有0的可能,所以都加1才行。View Code 1 program pku2352(input,output); 2 var 3 c : array[0..40000] of longint; 4 x,y,answer : array[0..40000] of longint; 5 n,maxx : longint; 6 pro... 阅读全文
摘要:
有一个天平,天平左右两边各有若干个钩子,总共有C个钩子,有G个钩码,求将钩码全部挂到钩子上使天平平衡的方法的总数。(距离小于15,重量小于25,钩子和钩码都少于20个)其中可以把天枰看做一个以x轴0点作为平衡点的横轴。别看数据小,搜索只能过3个点,那方案数巨多无比,要用int64。定义平衡度:当前所挂砝码分别乘其坐标的和,很明显平衡度=0时满足条件。用f[i,j]表示当前挂到第i个钩子,平衡度为j的方案数,f[i,j]=xigema{f[i-1,k-x[k]*y[i]]},y记坐标,x记重量。View Code 1 program balance(input,output); 2 const. 阅读全文
摘要:
需要一个这样的数据结构,每次能修改矩阵中的某一个值,还可以查询某个子矩阵的权值和。二维树状数组没压力啊。View Code 1 program pku1195(input,output); 2 var 3 c : array[0..1500,0..1500] of int64; 4 n,kk : longint; 5 function lowbit(x: longint ):longint; 6 begin 7 exit(x and (-x)); 8 end; { lowbit } 9 procedure insect(x,y,w :longint );10 va... 阅读全文