POJ2240 Arbitrage 货币汇率
摘要:/**题目大意:* 有n种货币,而且每两种之间有汇率,如果a->b,b->c,c->a,然后他们之间的* 所有汇率乘积大于1,那么就是一种获得利润的手段,题目要求输出yes.*解题思路:* 其实画图就知道,题目要的就是找到存在一个圈,并且这个圈所有权值的乘积* 是正的,如果把最长路的关系条件由加法改为乘法,那么就是说找一个所有乘* 积为的环。dij,floyd可以办到吗?显然不行,他们都处理不了带环的。这个时候* spfa跟Bellman_ford就可以发挥无可比拟的优势了,不过囧了,这道题居然spfa* ...
阅读全文
posted @
2012-09-02 15:48
cchun
阅读(143)
推荐(0)
POJ1847 Tram 开关最短路
摘要:/**State: POJ1847 16 MS 716 KB GNU C++ *题目大意:* 有N个点以及起点和终点,点与点有路相连。接下来的N行分别为点i的情况:* 第一个数字k表示与该点连通的点的个数,接下来输入k个数,表示与点i相* 连的点的编号,第一个所连的点为可以不用改扳手而直接通过,其余的点通* 过的话要改一次扳手,求从起点到终点改扳手的最小次数。*解题思路:* 原来以为改开关之后,还有后继性,贡献了2个wa,之后分析发现没有环,所以* 一个点只走一次,开关没有后继性,所以直...
阅读全文
posted @
2012-09-02 15:47
cchun
阅读(202)
推荐(0)
POJ1724 ROADS 费用最短路
摘要://State: POJ1724 Accepted 1188K 32MS C++ 1968B/**题目大意:* 给定总费用,还有n个城市,m条边,构成的图为单向图,然后* m条边有费用,还有距离,求从1->n的最小距离,要求走边时* 费用要小于边的费用。*解题思路:* 用二维dij即可。*/View Code #include <queue>#include <iostream>#include <cstdio>#include <cmath>#include <cstring>using namespace...
阅读全文
posted @
2012-09-02 15:46
cchun
阅读(379)
推荐(0)
POJ1135 Domino Effect 多米诺骨牌
摘要:不错的最短路径题目。/**State: POJ1135 Accepted 1204K 0MS C++ 1854B*题目大意:* 有一个多米诺骨牌的游戏,我们知道有关键骨牌和普通骨牌,将* 关键骨牌推倒之后,整个骨牌阵就会倒下,推动其他的关键骨牌,* 其中推倒关键骨牌A使的关键骨牌B也倒,需要一定的时间,所以* 本题要求求出最后一个倒的骨牌的位置,及其时间*解题思路:* 想一下结果,其实最后一个骨牌倒的位置只有2种情况,要么就是* 在关键骨牌的位置,要么就是在两个关键骨牌之间。之后...
阅读全文
posted @
2012-09-02 15:42
cchun
阅读(369)
推荐(0)
HDU1599 find the mincost route 最小环
摘要:/**State: HDU1599 46MS 340K 1460 B C++*题目大意:* 杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条* 旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1* ,V2,....VK,V1,那么必须满足K>2,就是说至除了出发点以外至少要经过* 2个其他不同的景区,而且不能重复经过同一个景区。现在8600需要你帮* 他找一条这样的路线,并且花费越少越好。*解题思路:* 巧妙利用floyd找最小环即可。注意中间的溢出问题...
阅读全文
posted @
2012-09-02 15:39
cchun
阅读(220)
推荐(0)
POJ2394 Checking an Alibi 基础最短路
摘要:/**State: 2394 Accepted 724K 16MS G++ 1789B *题目大意:* 给定无向图,输入的c代表c个奶牛,然后输入c个点的位置,* 求能够在t时间内到达点1的牛。*解题思路:* 直接spfa吧。*/View Code #include <iostream>#include <queue>using namespace std;const int MAXN = 505;const int MAXE = 1024;const int inf = 0x3f3f3f3f;typedef str...
阅读全文
posted @
2012-08-18 09:21
cchun
阅读(262)
推荐(0)
POJ2240 Arbitrage 货币汇率
摘要:我用了Bellman_ford判断正权圈,还可以用floyd,够酷。/**题目大意:* 有n种货币,而且每两种之间有汇率,如果a->b,b->c,c->a,然后他们之间的* 所有汇率乘积大于1,那么就是一种获得利润的手段,题目要求输出yes.*解题思路:* 其实画图就知道,题目要的就是找到存在一个圈,并且这个圈所有权值的乘积* 是正的,如果把最长路的关系条件由加法改为乘法,那么就是说找一个所有乘* 积为的环。dij,floyd可以办到吗?显然不行,他们都处理不了带环的。这个时候* spfa跟Bellman_fo...
阅读全文
posted @
2012-08-18 09:21
cchun
阅读(211)
推荐(0)
POJ3268 Silver Cow Party 单向图_来去最短
摘要:/**State: POJ3268 Accepted 3324K 16MS C++ 1947B*题目大意:* 给定一个有向图(可带环),然后要求所有点到特定点e的距离,然后规定每个* 点到e之后,还要返回原地,注意图是有向图,去跟回来的路径可能不同。*解题思路:* 为了减少运算时间,可以建立正图跟反图,然后两遍spfa即可求解。* 各种最短路均可求,注意复杂度即可。*/spfa+邻接表:View Code #include <iostream>#include <queue>using namespace std...
阅读全文
posted @
2012-08-18 09:16
cchun
阅读(705)
推荐(0)
POJ3660 Cow Contest 奶牛排名
摘要:/**State: POJ3660 Accepted 208K 32MS C++ 960B *题目大意:* 有n只奶牛,有n个连续的实力,如果u的实力大于v的实力,就能打赢它,* 然后给定m种关系,求最后能确定其排名的奶牛个数。*解题思路:* 一开始用dij的最长路去求,发现有一种典型的DAG求不了,而传递闭包可以* 快速求解。其实dij可行,但是麻烦。没有floyd那么简洁优美啊。用floyd,求* 出每个点能到达的点。如果有一个点,排名在它之前的和排名在它之后的点之* ...
阅读全文
posted @
2012-08-17 18:03
cchun
阅读(1534)
推荐(0)