2011年9月3日

poj-1087 A Plug for UNIX ***

摘要: /* * 1087.cpp * 第一道最大流题目, 看了网上的解法, * http://www.cppblog.com/NARUTOACM/archive/2010/03/01/108680.html * 见图:其实可以把图中的边的方向全部反过来,就可以这样理解:T是总电源, 单位时间内可以给A、B、C、D提供1度电(ABCD是原来就有的电源插座), 而根据每个设备的插座类型, 相应的插座能给设备提供1度电.。S看做总的消耗功率。。每个设备对总消耗功率的贡献是1.。 至于adapter, 由于每种adapter有无限个, 所以 例如 把 X 变成 B 的adapte... 阅读全文

posted @ 2011-09-03 22:30 龙豆 阅读(1287) 评论(0) 推荐(0)

poj-2049 Finding Nemo *

摘要: 【转】 (看了题目,感觉用广搜, 就没做~ 直接转一个~ )搜索题,我的做法是用优先队列(保证当前所通过的门是最少的),所以遇见出口,就可以直接得到结果,搜索从Nemo的位置开始,有三种情况,遇见门,door加1,入队,遇见air,直接入队,遇见墙,continue;我的存储结构见代码,这里还要注意两点,一是Nemo的位置可能超出[1--199],所以开始时有必要进行判断(因为这,n个runtime error ,郁闷了几个小时。。)二是这个如果用C++提交的话,好像输入Nemo的位置时,必须用cin(不能用scanf,当然G++也可以通过的),这是偶然在discuss上看到的,要不,不知又. 阅读全文

posted @ 2011-09-03 17:06 龙豆 阅读(1151) 评论(0) 推荐(0)

poj-1062 昂贵的聘礼 **

摘要: /* * 最短路, Dijkstra(数组实现) * * 建图 : 若 物品u 能用物品 v 再加 钱 a 交换, 则 边权值w(v,u) = a * 初始: d[i] = 物品i的直接价格 * * 注意等级的限制, 酋长的等级不一定是最高的~ 应枚举等级的范围,起点不在范围内的边不能松弛~ * * */#include <cstdio>#include <cstring>using namespace std;const int inf = 10000000;const int maxN = 100 + 5;int m, n, r[maxN], d[maxN];boo 阅读全文

posted @ 2011-09-03 15:55 龙豆 阅读(338) 评论(0) 推荐(0)

poj-1125 Stockbroker Grapevine *

摘要: /* * 水题~ floyd算法 0ms * * 求每对顶点间的最短路, 然后选择 最大值 最小的那个顶点作为起点~ */#include <cstdio>#include <cstring>using namespace std;const int maxN = 100 + 5;const int inf = 10000000;int n, totEdgeNum, w[maxN][maxN];/*struct SEdge{ int u, v, w;};SEdge edge[maxN * maxN];*/void floyd(){ for(int k=1; k<= 阅读全文

posted @ 2011-09-03 14:18 龙豆 阅读(214) 评论(0) 推荐(0)

poj-3259 Wormholes **

摘要: /* * Bellman_Ford 判断负环 * * 注意可能有平行边,只需保留最小的权值 * * 【转】 * 此题虽然是最最基础的bellman_ford,但用来加深理解还是可以的: * 1)bellman_ford 究竟要relax多少次,当从1到n存在且存在1 -> 2, 2 -> 3 ...n-1 -> n这样的边时, * 从1开始relax,到n显然是需要n-1次的,而如果其中存在负环的话,若relax次数大于n-1,总是存在新的可以收缩的点, * 因此最科学的次数是先做n-1次,再做第n次: * 如果n-1次relax... 阅读全文

posted @ 2011-09-03 11:06 龙豆 阅读(256) 评论(0) 推荐(0)

导航