摘要: /**题目大意:* 有n种货币,而且每两种之间有汇率,如果a->b,b->c,c->a,然后他们之间的* 所有汇率乘积大于1,那么就是一种获得利润的手段,题目要求输出yes.*解题思路:* 其实画图就知道,题目要的就是找到存在一个圈,并且这个圈所有权值的乘积* 是正的,如果把最长路的关系条件由加法改为乘法,那么就是说找一个所有乘* 积为的环。dij,floyd可以办到吗?显然不行,他们都处理不了带环的。这个时候* spfa跟Bellman_ford就可以发挥无可比拟的优势了,不过囧了,这道题居然spfa* ... 阅读全文
posted @ 2012-09-02 15:48 cchun 阅读(133) 评论(0) 推荐(0) 编辑
摘要: /**State: POJ1847 16 MS 716 KB GNU C++ *题目大意:* 有N个点以及起点和终点,点与点有路相连。接下来的N行分别为点i的情况:* 第一个数字k表示与该点连通的点的个数,接下来输入k个数,表示与点i相* 连的点的编号,第一个所连的点为可以不用改扳手而直接通过,其余的点通* 过的话要改一次扳手,求从起点到终点改扳手的最小次数。*解题思路:* 原来以为改开关之后,还有后继性,贡献了2个wa,之后分析发现没有环,所以* 一个点只走一次,开关没有后继性,所以直... 阅读全文
posted @ 2012-09-02 15:47 cchun 阅读(194) 评论(0) 推荐(0) 编辑
摘要: //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 阅读(374) 评论(0) 推荐(0) 编辑
摘要: /**State: ZOJ1508 C++ 220ms 16008*题目大意:* 有一个序列,题目用n个整数组合 [ai,bi,ci]来描述它,[ai,bi,ci]* 表示在该序列中处于[ai,bi]这个区间的整数至少有ci个。如果存在这* 样的序列,请求出满足题目要求的最短的序列长度是多少。如果不存在则* 输出 -1。输入:第一行包括一个整数n,表示区间个数,以下n行每行描述* 这些区间,第i+1行三个整数ai,bi,ci,由空格隔开,其中0<=ai<=bi<=50000 * 而且 1<=c... 阅读全文
posted @ 2012-09-02 15:45 cchun 阅读(230) 评论(0) 推荐(0) 编辑
摘要: /**State: Bellman_ford POJ1716 Accepted 640K 329MS C++*题目大意:* 给n个区间,然后求一个最小的集合里面包含每个区间至少2个不同的元素。* 注意元素均为整数。求这个最小集合的个数。*解题思路:* 用差分约束条件来约束问题即可。设Si为0到i里面区间中为集合元素的个数。* 有Su - S(v-1) >= 2, 0 <= S(n+1) - S(n) <= 1。根据这三个约束条件来* 构图即可。*解题困惑:* 为什么不能用最短路约束来求?... 阅读全文
posted @ 2012-09-02 15:44 cchun 阅读(419) 评论(0) 推荐(0) 编辑
摘要: /**State: POJ1364 Accepted 176K 0MS C++*题目大意;* 已知一个序列a[1], a[2], ......, a[n],给出它的若干子序列以及对该子序列的* 约束条件,例如a[si], a[si+1], a[si+2], ......, a[si+ni],且a[si]+a[si+1]* +a[si+2]+......+a[si+ni] < or > ki。求是否存在满足以上m个要求的数列。是* 则输出“lamentable kingdom”,否则输出“successful co... 阅读全文
posted @ 2012-09-02 15:43 cchun 阅读(2478) 评论(0) 推荐(0) 编辑
摘要: 不错的最短路径题目。/**State: POJ1135 Accepted 1204K 0MS C++ 1854B*题目大意:* 有一个多米诺骨牌的游戏,我们知道有关键骨牌和普通骨牌,将* 关键骨牌推倒之后,整个骨牌阵就会倒下,推动其他的关键骨牌,* 其中推倒关键骨牌A使的关键骨牌B也倒,需要一定的时间,所以* 本题要求求出最后一个倒的骨牌的位置,及其时间*解题思路:* 想一下结果,其实最后一个骨牌倒的位置只有2种情况,要么就是* 在关键骨牌的位置,要么就是在两个关键骨牌之间。之后... 阅读全文
posted @ 2012-09-02 15:42 cchun 阅读(363) 评论(0) 推荐(0) 编辑
摘要: /**State: HDU3592 31MS 448K 2009 B C++ *题目大意:* 有N个人按照1-N 的顺序排成一排,给你X个关于他们位置的关系,* 如:a, b ,c,则说明编号为a的人在标号为b 的人的前面,且两人* 最多相隔c距离,再给你Y给位置关系,给出的是a和b两个人至少相* 距c,问1号人和N号人最远相距多少。如果不存在这样的排序,则输* 出-1 ,如果1和N可以相距任意的距离,则输出-2, 否则输出最长* 的距离。*解题思路:* 由于求的是最大的距离,所以要用约束条件的... 阅读全文
posted @ 2012-09-02 15:41 cchun 阅读(203) 评论(0) 推荐(0) 编辑
摘要: /**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 阅读(211) 评论(0) 推荐(0) 编辑