上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 21 下一页
摘要: 有一个字符串,每次只能从两端取,求取得的字典序最小的子符序列。每次比较剩余字符串的正向和反向字符串的大小,正向大就在尾取,否则在头取,相当于贪心了吧。View Code 1 program pku3617(input,output); 2 var 3 s1,s2 : ansistring; 4 answer : ansistring; 5 n : longint; 6 procedure init; 7 var 8 i : longint; 9 ch : char;10 begin11 readln(n);12 s1:='';13 ... 阅读全文
posted @ 2012-03-21 12:20 Codinginging 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 给一个n个顶点的图(怎么最近的随笔都拿这句话开头^_^),Q条询问,(x,y),查询从x到y的路径上的最大边的最小值。(Q<=40000)最大最小问题99%都是二分答案,这道题却偏偏是那1%.用floyd,最后的关键语句变成f[i,j]=min(f[i,j],max(f[i,k],f[k,j]))即可。算法执行后f[i,j]就是问题(i,j)的答案。View Code 1 program pku3615(input,output); 2 var 3 f : array[0..400,0..400] of longint; 4 n,m : longint; 5 q :... 阅读全文
posted @ 2012-03-21 12:04 Codinginging 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 给定一个n个顶点的完全有向图,求从0点出发遍历所有点之后回到0点的最小路径长度。网上很多人用floyd之后再dp的算法,看起来没什么意思,这种题正是二维SPFA的用武之地,d[now,state]表示到now点,状态为state的最短路径,其中state为把遍历情况压缩为二进制数的十进制值,SPFA之后输出d[0,(1<<(n+1))-1]即可,由于习惯问题,代码中我把所有的编号都+1了。View Code 1 program pku3311(input,output); 2 type 3 node = record 4 now,state : longint;... 阅读全文
posted @ 2012-03-20 15:34 Codinginging 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 题意抽象出来就是求(cell[i])^k mod m1^m2=0的最小的k值。把m1^m2分解质因数即可,再把每一个细胞数分解,对比其质因子数量,对于某个因子,m1^m2次有而后者没有,那么这种情况一定无解,继续枚举下一个细胞数即可,而两者都有时,就是要最少的后者的因子凑出大于等于后者因子的最小次幂,处理完每一个因子后取因子需要的最大值,用它去更新答案。注意m1=1时的特殊情况。View Code 1 program tyvj1105(input,output); 2 var 3 v : array[2..50000] of boolean; 4 prime... 阅读全文
posted @ 2012-03-18 18:13 Codinginging 阅读(1111) 评论(0) 推荐(0) 编辑
摘要: 把质因子只有2,3,5的数称为Ugly数,求第k大的Ugly数。(1是第一个)用堆保存数字,开始堆中只有1,每次删除最小值,把最小值的2倍,3倍,5倍插入到堆中,执行k次就得到结果。注意要判重,用个hash就行,有点羡慕C++的map了。View Code 1 program pku1338(input,output); 2 type 3 longint = int64; 4 node = ^link; 5 link = record 6 worth : longint; 7 next : node; ... 阅读全文
posted @ 2012-03-18 17:11 Codinginging 阅读(562) 评论(0) 推荐(1) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 21 下一页