摘要:
/**State: POJ3177 Accepted 340K 16MS C++ 1877B*题目大意:* 给出一个无向连通图,判断最少需要加多少条边,才能使得* 任意两点之间至少有两条相互"边独立"的道路.注意,可能* 含有重边.*解题思路:* 先缩点,之后形成一棵树,然后求(叶子节点数量+1)/ 2即可。*/View Code #include <iostream>#include <vector>#include <stack>using namespace std;const int MAXN = 5... 阅读全文
摘要:
/**State: HDU3072 328MS 2648K 2039 B C++ *题目大意:* 有一个含边权有向图,然后有向图中的强连通分量里面通信不需要* 权值,要求从0点开始向所有的点通信,然后求最后总权值最小。*解题思路:* 看到强连通分量不需要权值即可通信,就想到缩点。缩点之后就是一个* DAG,然后这个DAG里面的除了起始点0之外,所有点都要走一次,那么* 想清楚了其实就是每一个点有多条入度边,只需要找其中权值最小的* 一条入度边即可,然后实现这个过程可以在缩点的过程中实现。*解题感想;* ... 阅读全文
摘要:
/**题目大意:* 在数学里面有两种关系,一种是充分条件,即对于集合p,q,p => q,* 另一种是等价关系,p => q && q =>p, 这两种关系都具有传递性,p* => q 可以对应到有节点p到节点q有一条边。问:给定一些集合的充分* 性关系,确定出若让所有集合都等价,还需在添加最少的充分性条件。*解题思路:* 有向图加最少边变强连通,模板题*/View Code #include <iostream>#include <cstdio>#include <cstring>using namespace st 阅读全文
摘要:
/**State: POJ2375 26396K 938MS C++ 2743B 险过:limit:1000ms*题目大意:* FR为自己的牛建立了一个H*W的矩形溜冰场,每一个小方格都* 有一个高度L,牛只能向相邻的小方格滑动(即上下左右),* 而且相邻的小方格的高度不能比当前高度高。为了使牛能够从* 任意一点到达任意其他的点。FR打算买一些ski lifts。它能够* 连接两个小方格,使得这两个小方格能够相互到达(与高度无* 关)。问至少需要多少ski lifts。使得牛能够从任意一点到达... 阅读全文
摘要:
我用了Bellman_ford判断正权圈,还可以用floyd,够酷。/**题目大意:* 有n种货币,而且每两种之间有汇率,如果a->b,b->c,c->a,然后他们之间的* 所有汇率乘积大于1,那么就是一种获得利润的手段,题目要求输出yes.*解题思路:* 其实画图就知道,题目要的就是找到存在一个圈,并且这个圈所有权值的乘积* 是正的,如果把最长路的关系条件由加法改为乘法,那么就是说找一个所有乘* 积为的环。dij,floyd可以办到吗?显然不行,他们都处理不了带环的。这个时候* spfa跟Bellman_fo... 阅读全文
摘要:
/**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... 阅读全文
摘要:
/**State: POJ3268 Accepted 3324K 16MS C++ 1947B*题目大意:* 给定一个有向图(可带环),然后要求所有点到特定点e的距离,然后规定每个* 点到e之后,还要返回原地,注意图是有向图,去跟回来的路径可能不同。*解题思路:* 为了减少运算时间,可以建立正图跟反图,然后两遍spfa即可求解。* 各种最短路均可求,注意复杂度即可。*/spfa+邻接表:View Code #include <iostream>#include <queue>using namespace std... 阅读全文