随笔分类 -  Algorithm

算法,ACM
摘要:1、题目类型:图论、最大流、Edmonds_Karp算法。2、解题思路:简单最大流问题,Edmonds_Karp算法的经典应用。3、注意事项:对比Ford_Fulkerson算法DFS寻找增广路径,Edmonds_Karp算法BFS寻找增广路径效率更高。4、实现方法:[代码] 阅读全文
posted @ 2010-08-13 15:25 勇泽 阅读(291) 评论(0) 推荐(1)
摘要:1、题目类型:图论、混合图欧拉回路、Edmonds_Karp算法。2、解题思路:(1)将图的无向边随便定向,计算每个点的入度和出度。如果有某个点出入度之差为奇数,那么肯定不存在欧拉回路;(2)构建流网络模型,Edmonds_Karp算法,察看是否有满流的分配。存在即有欧拉回路,没有就是没有欧拉回路。3、注意事项:Edmonds_Karp算法中残留网络的更新。4、参考博客:http://blog.c... 阅读全文
posted @ 2010-08-12 20:16 勇泽 阅读(502) 评论(0) 推荐(1)
摘要:1、题目类型:图论、有向边欧拉回路。2、解题思路:题意,一个图,要将每条边恰好遍历两遍,而且要以不同的方向,还要回到原点。步骤,(1)将无向边转换为有向边,用边结构体的vector数组表示图的邻接表关系;(2)Bellman-Ford算法松弛所有的边,寻找是否存在负圈。3、注意事项:用矩阵表示点间关系可能MLE,用点间邻接表表示可能TLE(曾经在别的题终于到过此种情况),所有改用边结构体的vect... 阅读全文
posted @ 2010-08-12 11:17 勇泽 阅读(326) 评论(0) 推荐(0)
摘要:1、题目类型:图论、最大二分匹配、匈牙利算法。2、解题思路:求解最小点集覆盖即求解最大二分匹配,匈牙利算法的简单应用。3、注意事项:模拟匈牙利算法的递归过程。4、实现方法:[代码] 阅读全文
posted @ 2010-08-12 10:57 勇泽 阅读(175) 评论(0) 推荐(0)
摘要:1、题目类型:图论、最短路径、Bellman-Ford算法。2、解题思路:(1)根据输入记录所有的边,其中无向边转换为有向边记录;(2)Bellman-Ford算法松弛所有的边,寻找是否存在负圈。3、注意事项:注意Mov[]数组的大小。4、实现方法:[代码] 阅读全文
posted @ 2010-08-11 17:01 勇泽 阅读(387) 评论(0) 推荐(1)
摘要:1、题目类型:图论、最短路径、Bellman-Ford算法。2、解题思路:Bellman-Ford算法简单应用。3、注意事项:更新条件:d[j]<(d[i]-com[i][j])*rate[i][j]。4、实现方法:[代码] 阅读全文
posted @ 2010-08-11 16:51 勇泽 阅读(217) 评论(0) 推荐(0)
摘要:1、题目类型:图论、最小生成树、Prim算法。2、解题思路:Prim算法生成最小生成树过程中寻找最长Edge。3、注意事项:每个case结束后,输出空行;pow()函数中需强制转换double。4、实现方法:[代码] 阅读全文
posted @ 2010-08-11 16:42 勇泽 阅读(247) 评论(0) 推荐(0)
摘要:1、题目类型:图论、点双强连通分量、Tarjan算法。2、解题思路:题意,N个骑士中某些骑士之间会有仇恨。骑士们开会时围坐在一个圆桌旁。一次会议能够举行,当且仅当没有相邻的两个骑士相互仇恨,且开会人数为大于2的奇数。若某个骑士任何会议都不能参加,那么就必须将它踢出。给出骑士之间的仇恨关系,问需要踢出多少个骑士。步骤,(1)建立输入图的补图;(2)类似Trajan算法求解并记录点双强连通分量;(3)... 阅读全文
posted @ 2010-08-10 21:42 勇泽 阅读(549) 评论(0) 推荐(0)
摘要:1、题目类型:图论、最小生成树、Prim算法。2、解题思路:Prim算法求解最小生成树。3、注意事项:Prim算法的简单应用。4、实现方法:[代码] 阅读全文
posted @ 2010-08-10 19:44 勇泽 阅读(157) 评论(0) 推荐(0)
摘要:1、题目类型:图论、最小生成树、Prim算法。2、解题思路:(1)将输入转换为map[][]:即匹配任意两个字符串,记录其不同的字母个数;(2)Prim算法求解最小生成树。3、注意事项:Prim算法的简单应用。4、实现方法:[代码] 阅读全文
posted @ 2010-08-10 19:41 勇泽 阅读(272) 评论(0) 推荐(0)
摘要:1、题目类型:图论、最小生成树、迷宫、Prim算法、BFS。2、解题思路:(1)将输入转换为map[][]:'S'、'A'、' '、'#'分别用实际意义的数值表示;并将出现的节点用结构体数组Node[]表示;(2)BFS算法搜索map[][]迷宫,获得每个节点间的距离,用arr[][]数组保存;(3)Prim算法求解最小生成树。3、注意事项:输入不是规则的X*Y输入,包括输入x、y值时,需用cin... 阅读全文
posted @ 2010-08-10 16:29 勇泽 阅读(877) 评论(2) 推荐(4)
摘要:1、题目类型:图论、拓扑排序。2、解题思路:(1)每输入一组数据,进行拓扑排序;(2)内部形成环时(即出现冲突)TuoPu()返回-1;内部存在多个入度为0的点时(即无法判断)此时将f标识为1;当拓扑排序正确时,TuoPu()返回排序成功的节点个数;(3)根据TuoPu()的返回值,输出结果,仅当其返回值等于输入N时,结果正确。3、注意事项:当存在冲突或者拓扑排序成功时,之后的输入不对结果造成影响。4、实现方法:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.c 阅读全文
posted @ 2010-08-09 21:33 勇泽 阅读(1529) 评论(5) 推荐(1)
摘要:1、题目类型:图论、强连通分量、Tarjan算法。2、解题思路:(1)建立图的邻接表;(2)Trajan算法求解并记录强连通分量;(3)判断强连通分量的入度,当存在多个出度为0时,输出0;当只存在唯一出度为0的强连通分量,则输出其内部节点的个数。3、注意事项:图用邻接表表示,矩阵表示MLE;注意M=0的情况。4、实现方法:[代码] 阅读全文
posted @ 2010-08-09 20:39 勇泽 阅读(829) 评论(0) 推荐(1)
摘要:1、题目类型:DP。2、解题思路:等待进一步整理。3、注意事项:等待进一步整理。4、实现方法:[代码] 阅读全文
posted @ 2010-08-08 22:18 勇泽 阅读(299) 评论(0) 推荐(0)
摘要:1、题目类型:01背包问题扩展,DP。2、解题思路:DP递推式: for i=1...N for j=left...right DP[j]=DP[j+S[i]]+F[i]3、注意事项:注重DP[i]的状态保持,其他方法TLE;用left、right 记录边界提高的遍历效率;用Flag[]标示是否可用。4、实现方法:[代码] 阅读全文
posted @ 2010-08-08 21:19 勇泽 阅读(456) 评论(0) 推荐(1)
摘要:1、题目类型:01背包问题,DP。2、解题思路:DP递推式: for i=1...N for j=M...1 DP[j]=max{DP[j],DP[j-W[i]]+D[i]}3、注意事项:DP用一维数组表示,否则MLE;j 的循环从M...1,用于同一数组保存 i-1时DP[j]的值。4、实现方法:[代码] 阅读全文
posted @ 2010-08-07 15:34 勇泽 阅读(256) 评论(0) 推荐(1)
摘要:1、题目类型:DP、概率论。2、解题思路:DP递推式(以上下切为例): for i=x1...x2 Sum[k][x1][y1][x2][y2]=Min{Sum[k][x1][y1][x2][y2],Min{DP(k-1,x1,y1,i,y2)+Bak[i+1][y1][x2][y2],DP(k-1,i+1,y1,x2,y2)+Bak[x1][y1][i][y2]}}; 其中 i 表示切割位置,... 阅读全文
posted @ 2010-08-06 19:25 勇泽 阅读(510) 评论(0) 推荐(0)
摘要:1、题目类型:DP、01背包问题的扩展。2、解题思路:DP递推式: for i=1...G for j=min...maxfor k=1...C DP[i][j]=DP[i][j]+DP[i-1][j-hook[k]*goods[i]]3、注意事项:注重DP状态的选择,其他选择容易出现TLE、MLE。4、实现方法:[代码] 阅读全文
posted @ 2010-08-05 23:03 勇泽 阅读(183) 评论(0) 推荐(1)
摘要:1、题目类型:多重背包问题,DP。2、解题思路:DP递推式: for i=0...k for j=cash...0 DP[j]=max{DP[j],DP[j-value[i]]+value[i]}3、注意事项:多重背包转换为01背包时,k++、value[k]的控制;dp[]注意及时清空;注意value[]大小,避免RE。4、实现方法:[代码] 阅读全文
posted @ 2010-08-05 22:59 勇泽 阅读(238) 评论(0) 推荐(1)
摘要:1、题目类型:动态规划。2、实现方法:[代码] 阅读全文
posted @ 2010-08-04 19:56 勇泽 阅读(199) 评论(0) 推荐(0)