摘要: POJ 3414 Pots大意:有两只桶,容量分别为a,b,对每只桶,有以下三种操作:1.Fill(i)装满第i只桶2.DROP(i)将桶i的水倒掉3.POUR(i,j),将桶i中的水倒入桶j,若桶j满,剩余的水遗留于桶i中问能否通过这些操作使得某只桶恰好装有容量为c的水?若能,输出最少操作次数及过程PS:c#include#includeusingnamespace std;constint N =101;struct pn{ int prex; int prey;}pre[N][N];struct node{ int a,b; int step; booloperatorBif(a==0| 阅读全文
posted @ 2011-02-12 20:59 AndreMouche 阅读(368) 评论(0) 推荐(0) 编辑
摘要: POJ 2479 Maximum sum算法核心:dp对于n个连续数字,在其中任意取出两个不重叠的连续段,求所有合法条件下该两个连续段和的最大值例如: n = 10,数字为:1 -1 2 2 3 -3 4 -4 5 -5 此时答案为13 ,即(2,2,3,-3,4)与(5)的和#includeconstint N =50000+1;int dp1[2];//dp[i]记录包含数字i的前i个数字的一段最大和int dp2[2];//dp2[i]记录前i个数字的一段最大和int dp3[2];//dp3[i]记录到包含数字i的两段最大和inline int max(int a,int b){ re 阅读全文
posted @ 2011-02-12 15:02 AndreMouche 阅读(460) 评论(0) 推荐(0) 编辑
摘要: POJ 2449 Remmarguts' Datehttp://poj.org/problem?id=2449算法核心:A*、dijkstra大意:求有向图中从s到t的k短路分析:1.用dijkstra逆向计算出所有点到t的最短距离dis[i]2.建立估价函数 f(i)= g(i)+h(i) 其中g(i)为从s到i的实际距离,h(i)为从i到t的最短路dis[i]3.使用上述估计函数用A*算法从s点出发BFS全图,用visited[i]表示点i的出队次数。 当visited[i]=k时,即找到从s到t的k短路为f(i) 其间若visited[i]>k则放弃该点4.注意:若s==t 阅读全文
posted @ 2011-02-12 14:03 AndreMouche 阅读(1363) 评论(0) 推荐(0) 编辑