上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 21 下一页
摘要: 有三个矩阵A,B,C,问A*B是否C,(n^3)的算法会超时。构造一个n*1的矩阵,由A*B=CA*B*X=C*XA*(B*X)=C*X那么在(n^2)的时间内就能判定一次。View Code 1 program pku3318(input,output); 2 var 3 x,y,z : array[0..501,0..501] of int64; 4 left,right,answer1 : array[0..501] of int64; 5 n : longint; 6 rand : arra... 阅读全文
posted @ 2012-03-25 17:54 Codinginging 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 在一个笛卡尔平面坐标系里(则X轴向右是正方向,Y轴向上是正方向),有N(1<=N<=100)个矩形,第i个矩形的左上角坐标是(x1,y1),右下角坐标是(x2,y2)。问这N个矩形所覆盖的面积是多少?注意:被重复覆盖的区域的面积只算一次。(-10^4<=x1,y1,x2,y2<=10^4)离散化一下之后暴力统计即可,染的时候要搞清楚s[i,j]是i(j)与前(上)一条线还是后(下)一条线围成的面积。相当于vijos1056,但是坐标的判重就需要改一下了,很好弄,不再累述。View Code 1 program planting(input,output); 2 type 阅读全文
posted @ 2012-03-25 17:09 Codinginging 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 对于每一组数据(b,a),统计b在a中出现的次数。一道裸的KMP匹配题,你用BM我也没意见。View Code 1 program pku3461(input,output); 2 var 3 a,b : ansistring; 4 next : array[0..20000] of longint; 5 cases : longint; 6 i,j,k : longint; 7 answer : longint; 8 begin 9 readln(cases);10 for k:=1 to cases do11 beg... 阅读全文
posted @ 2012-03-23 16:50 Codinginging 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 求一个字符串中每一个前缀用s’^k(k>1)表示的所有情况。要求输出该前缀的结束位置和k值。和2406有基本相同的方法,求出next数组后枚举i,看(1-i) mod(i-next[i])是否大于1,满足条件就输出即可。View Code 1 program pku1961(input,output); 2 var 3 n : longint; 4 ch : char; 5 s : ansistring; 6 next : array[0..1000100] of longint; 7 i,j : longint; 8 ... 阅读全文
posted @ 2012-03-23 16:39 Codinginging 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 有一个长度不超过400000的字符串s,求满足{既是s的前缀,又是s的后缀}的字串,输出每一个串的起始位置。首先,它本身满足条件,接下来,用KMP求出next数组,每次去掉next[i]到i的一段字符,剩余字串仍满足条件,直到找到头为止。View Code 1 program pku2752(input,output); 2 var 3 s : ansistring; 4 next : array[0..500000] of longint; 5 answer : array[0..500000] of longint; 6 total : lo... 阅读全文
posted @ 2012-03-23 16:23 Codinginging 阅读(189) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 21 下一页