上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页
摘要: 1、题目类型:图论、点双强连通分量、Tarjan算法。2、解题思路:题意,N个骑士中某些骑士之间会有仇恨。骑士们开会时围坐在一个圆桌旁。一次会议能够举行,当且仅当没有相邻的两个骑士相互仇恨,且开会人数为大于2的奇数。若某个骑士任何会议都不能参加,那么就必须将它踢出。给出骑士之间的仇恨关系,问需要踢出多少个骑士。步骤,(1)建立输入图的补图;(2)类似Trajan算法求解并记录点双强连通分量;(3)... 阅读全文
posted @ 2010-08-10 21:42 勇泽 阅读(541) 评论(0) 推荐(0) 编辑
摘要: 1、题目类型:图论、最小生成树、Prim算法。2、解题思路:Prim算法求解最小生成树。3、注意事项:Prim算法的简单应用。4、实现方法:[代码] 阅读全文
posted @ 2010-08-10 19:44 勇泽 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 1、题目类型:图论、最小生成树、Prim算法。2、解题思路:(1)将输入转换为map[][]:即匹配任意两个字符串,记录其不同的字母个数;(2)Prim算法求解最小生成树。3、注意事项:Prim算法的简单应用。4、实现方法:[代码] 阅读全文
posted @ 2010-08-10 19:41 勇泽 阅读(268) 评论(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 勇泽 阅读(870) 评论(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 勇泽 阅读(1521) 评论(5) 推荐(1) 编辑
摘要: 1、题目类型:图论、强连通分量、Tarjan算法。2、解题思路:(1)建立图的邻接表;(2)Trajan算法求解并记录强连通分量;(3)判断强连通分量的入度,当存在多个出度为0时,输出0;当只存在唯一出度为0的强连通分量,则输出其内部节点的个数。3、注意事项:图用邻接表表示,矩阵表示MLE;注意M=0的情况。4、实现方法:[代码] 阅读全文
posted @ 2010-08-09 20:39 勇泽 阅读(823) 评论(0) 推荐(1) 编辑
摘要: 1、题目类型:DP。2、解题思路:等待进一步整理。3、注意事项:等待进一步整理。4、实现方法:[代码] 阅读全文
posted @ 2010-08-08 22:18 勇泽 阅读(295) 评论(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 勇泽 阅读(448) 评论(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 勇泽 阅读(250) 评论(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 勇泽 阅读(503) 评论(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 勇泽 阅读(174) 评论(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 勇泽 阅读(233) 评论(0) 推荐(1) 编辑
摘要: 1、题目类型:动态规划。2、实现方法:[代码] 阅读全文
posted @ 2010-08-04 19:56 勇泽 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 1、题目类型:模拟题。2、解题思路:(1)根据输入数据建立Arr[],0表示'(',1表示')';(2)搜索为Arr[]中为 1 的位置,并找到与之相匹配的 0 ,cnt表示对应的匹配间1的个数。3、注意事项:flag[i]标示Arr[i]是否已完成匹配;flag[]注意及时清空。4、实现方法:[代码] 阅读全文
posted @ 2010-08-03 23:19 勇泽 阅读(550) 评论(0) 推荐(1) 编辑
摘要: 1、题目类型:模拟题、栈、位运算。2、解题思路:(1)题意只用到5个 bool 变量,所以用0—32的 int 型用于循环;(2)根据str的操作符性质不停的出战、入栈直到循环结束。(3)判断最终栈中数据的真假,输出结果。3、注意事项:从str.length()-1开始循环出入栈;4、实现方法:[代码] 阅读全文
posted @ 2010-08-03 23:03 勇泽 阅读(624) 评论(0) 推荐(1) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页