算法
文章平均质量分 53
ecchi
这个作者很懒,什么都没留下…
展开
-
[转]Trie树(2007-03-12 17:46)
转自xiaoyao4005.cublog.cn发现导论上好像没有...收下了^ ^Trie树既可用于一般的字典搜索,也可用于索引查找。对于给定的一个字符串a1,a2,a3,...,an.则采用TRIE树搜索经过n次搜索即可完成一次查找。不过好像还是没有B树的搜索效率高,B树搜索算法复杂度为logt(n+1/2).当t趋向大,搜索效率变得高效。怪不得DB2的访问内存设置为虚转载 2008-11-05 13:24:00 · 301 阅读 · 0 评论 -
N皇后问题的构造方法(2007-06-03 19:48)
貌似网上搜的都一样的版本(有错...貌似还不少).先把代码弄上来,如果POJ的SPJ没错的话,这代码就应该没错了.POJ 3239有时间好好整理一下再把规则写一下.#include "stdio.h" int main(){ int n,k; int i; while(scanf("%d",&n))原创 2008-11-05 13:46:00 · 618 阅读 · 0 评论 -
[转]POJ 3270 : Cow Sorting(2008-09-26 11:48)
出自 : http://hi.baidu.com/novosbirsk/blog/item/58c5fcfa46911e9159ee90b9.html想到前面那种情况, 没想到后面的...代码就不转了------------------最近学校在搞ACM的竞赛培训。第一天的课程是网络流,半懂半不懂。之后就是组合数学,讲了Pólya原理及其应用。这道3270就是一道运用到置换群的题目。转载 2008-11-05 20:14:00 · 2309 阅读 · 0 评论 -
POJ 1014 Dividing(2007-08-03 23:25)
放了好~~~久的一道题. 以前总看着没办法, 现在回头看, 感觉也不那么难了. 就是个DP.刚开始写的代码TLE了, 后来加强了一下判断, 优化后15MS AC.设dp[i]为价值i的可达性. 初始dp[0]=1;把总价值sum除2, 除不尽则不能划分. 否则dp[sum/2]为所求挺显而易见的DP...#include "stdio.h"#include "string.h"原创 2008-11-05 19:40:00 · 533 阅读 · 0 评论 -
ZOJ 1484 Minimum Inversion Number(2007-07-30 20:45)
被某人拉去ZOJ帮做题...一开始写了个O(n^2)的, 华丽地TLE掉...貌似常数太大. 后来发现没利用好题目的条件, 再写了个也是O(n^2)的AC了, 貌似是130MS, 不大会看ZOJ的时间......好像最前面是分钟.题目:Minimum Inversion NumberTime limit: 1 Seconds Memory limit: 32768K原创 2008-11-05 14:16:00 · 797 阅读 · 0 评论 -
POJ 2479 Maximum sum(2007-04-25 23:33)
对每一个i(0则所求为所有sum[i]中的最大值.(>0的数字少于2个的话特殊处理一下)left的预处理:设一变量s初始为0,一直往右加,为负的时候则置0.left[i]为max(当前的s值,left[i-1]).right同理,方向相反一开始也是这么想的,不过在计算右区间最大值时还是想的从左到右的方向,成了O(n^2)了......感觉这题还是挺强的...mark一下~原创 2008-11-05 13:37:00 · 382 阅读 · 0 评论 -
1000内的素数表(2007-01-25 22:55)
这个规模还是直接COPY的好... static int primes[168] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97,原创 2008-11-05 13:19:00 · 1392 阅读 · 1 评论 -
RMQ问题ST算法与模板(2007-07-15 15:48)
-------------------------------------算法简述-----------------------------------------ST算法O(nlogn)预处理,O(1)的查询指定区间的最值(以最小值为例)基本上是把待求区间[l,r]分为两段长为len的区间左边一段为[l,l+len-1],右边一段为[r-len+1,r]len必须使得两段区原创 2008-11-05 14:01:00 · 895 阅读 · 0 评论 -
二部图最大匹配(2006-11-05 16:34)
终于弄懂了..对上部点逐个寻找连接,找到则连接数+1:对于一上部点u,若能找到一下部点v,u与v匹配,且v未被连接,则连接u与v,连接数+1对于一上部点u,若能找到一下部点v,u与v匹配而v已与u连接若u能找到另一可连接的匹配v.则可以通过连接u-v,u-v使连接数+1红色部分是一个递归过程,一直到能找到一个未连接的下部点为止,修改连接,返回1.或找不到这样一原创 2008-11-05 13:15:00 · 400 阅读 · 0 评论 -
Floyd算法的证明(2006-10-28 02:09)
Floyd算法求每个点间的最短路径: void floyd(){for(k=0;k for(i=0;i for(j=0;j A[i][j]=min(A[i][j],A[i][k]+A[k][j]);}设有n的结点,Ak(i,j)为从i到j但不经过索引大于k的结点的最短路径长度.则有:A(i,j)=min{原创 2008-11-05 12:20:00 · 960 阅读 · 2 评论 -
topcoder srm362(2007-08-08 20:28)
想了好久才想出250的做法...结果交上去剩下107了. rating小升.250PT是给出N个点, 问可以组成的最多正方形个数. 写了个O(n)的算法过了.原创 2008-11-05 19:41:00 · 432 阅读 · 0 评论 -
POJ 2441 Arrange the Bulls(2007-06-07 13:08)
两个月前AC过的一道DP题.现在发现了一个复杂度较低的算法了~贴上两次AC的代码比较一下吧.--------------------------------------以前的--------------------------------------------以下标i表示barn的每一种状态. 从低位向高位,第k位为1表示第k个barn未被占用,(0dp[i]=num表示另ba原创 2008-11-05 13:51:00 · 672 阅读 · 0 评论 -
POJ1988--cube stacking(2007-04-18 17:01)
对并查集的扩展.看了下解题报告,总算有想法了.sum[i]记录根结点i下面的结点数(包括自己)和up[i]记录在某结点i上面的结点数.则在一结点m之下的结点数为sum[findpar(m)]-up[m]-1 (findpar查找根结点)在uni和findpar过程中更新sum和up的内容.(蓝色部分)#include "stdio.h" const int m原创 2008-11-05 13:31:00 · 351 阅读 · 0 评论 -
最大流Edmondes-Karp,hlpp代码(2007-04-16 19:49)
搞了一下午总算写出来了= =...刚开始学网络流,也不知道要怎么样优化,贴上随便写的代码~继续搞rtf...------------------------Edmondes-Karp--------------------------------#include "stdio.h" #include "string.h" int rm[201][201];原创 2008-11-05 13:26:00 · 553 阅读 · 0 评论 -
一个字符串里有一个字符出现次数超过1/2,求出该字符的O(n)时间,O(1)空间的算法(2008-06-30 09:58)
MXX师兄里插播的一个问题...实在是想不到, 上CSDN问了下, tailzhou 给了一个代码.我就不描述了...直接上代码.#include int main(){ char str[]="asdssfas efsdsdss"; int j=1; int n=sizeof(str)/sizeof(char); int idx=原创 2008-11-05 20:07:00 · 1765 阅读 · 0 评论