摘要: 把一个字符串按照特定的符号分成5分,把后四份按照特定的顺序插入后一个字符串的‘...’处,最后将去掉符号的字符串输出即可。View Code 1 program pku1917(input,output); 2 var 3 s : array[0..6] of ansistring; 4 ss,x : ansistring; 5 cases : longint; 6 i,tmp : longint; 7 begin 8 readln(cases); 9 while cases>0 do10 begin11 dec(case... 阅读全文
posted @ 2012-04-15 20:01 Codinginging 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 有一棵树,求出以每个点为起点的最长路径长度后,找到最长的连续区间满足极差不超过M。有一个重要的性质,一个点为起点的最长路的终点一定是直径的某个端点,问题转换为直径,O(n)之后ST处理出区间最值O(nlogn)用类似队列的维护形式求最长区间 O(n)View Code 1 {$inline on} 2 {$M 10000000000} 3 program race(input,output); 4 type 5 node = ^link; 6 link = record 7 goal,w : longint; 8 n... 阅读全文
posted @ 2012-04-15 19:45 Codinginging 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 平面中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... 阅读全文
posted @ 2012-04-15 19:35 Codinginging 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 有一个天平,天平左右两边各有若干个钩子,总共有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. 阅读全文
posted @ 2012-04-15 17:15 Codinginging 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 需要一个这样的数据结构,每次能修改矩阵中的某一个值,还可以查询某个子矩阵的权值和。二维树状数组没压力啊。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... 阅读全文
posted @ 2012-04-15 17:08 Codinginging 阅读(180) 评论(0) 推荐(0) 编辑