上一页 1 2 3 4 5 6 7 8 ··· 29 下一页
摘要: /**State: POJ3177 Accepted 340K 16MS C++ 1877B*题目大意:* 给出一个无向连通图,判断最少需要加多少条边,才能使得* 任意两点之间至少有两条相互"边独立"的道路.注意,可能* 含有重边.*解题思路:* 先缩点,之后形成一棵树,然后求(叶子节点数量+1)/ 2即可。*/View Code #include <iostream>#include <vector>#include <stack>using namespace std;const int MAXN = 5... 阅读全文
posted @ 2012-08-18 09:28 cchun 阅读(251) 评论(0) 推荐(0) 编辑
摘要: /**State: HDU3072 328MS 2648K 2039 B C++ *题目大意:* 有一个含边权有向图,然后有向图中的强连通分量里面通信不需要* 权值,要求从0点开始向所有的点通信,然后求最后总权值最小。*解题思路:* 看到强连通分量不需要权值即可通信,就想到缩点。缩点之后就是一个* DAG,然后这个DAG里面的除了起始点0之外,所有点都要走一次,那么* 想清楚了其实就是每一个点有多条入度边,只需要找其中权值最小的* 一条入度边即可,然后实现这个过程可以在缩点的过程中实现。*解题感想;* ... 阅读全文
posted @ 2012-08-18 09:26 cchun 阅读(120) 评论(0) 推荐(0) 编辑
摘要: /**题目大意:* 在数学里面有两种关系,一种是充分条件,即对于集合p,q,p => q,* 另一种是等价关系,p => q && q =>p, 这两种关系都具有传递性,p* => q 可以对应到有节点p到节点q有一条边。问:给定一些集合的充分* 性关系,确定出若让所有集合都等价,还需在添加最少的充分性条件。*解题思路:* 有向图加最少边变强连通,模板题*/View Code #include <iostream>#include <cstdio>#include <cstring>using namespace st 阅读全文
posted @ 2012-08-18 09:25 cchun 阅读(373) 评论(0) 推荐(0) 编辑
摘要: /**State: POJ2375 26396K 938MS C++ 2743B 险过:limit:1000ms*题目大意:* FR为自己的牛建立了一个H*W的矩形溜冰场,每一个小方格都* 有一个高度L,牛只能向相邻的小方格滑动(即上下左右),* 而且相邻的小方格的高度不能比当前高度高。为了使牛能够从* 任意一点到达任意其他的点。FR打算买一些ski lifts。它能够* 连接两个小方格,使得这两个小方格能够相互到达(与高度无* 关)。问至少需要多少ski lifts。使得牛能够从任意一点到达... 阅读全文
posted @ 2012-08-18 09:24 cchun 阅读(493) 评论(0) 推荐(0) 编辑
摘要: 我用了Bellman_ford判断正权圈,还可以用floyd,够酷。/**题目大意:* 有n种货币,而且每两种之间有汇率,如果a->b,b->c,c->a,然后他们之间的* 所有汇率乘积大于1,那么就是一种获得利润的手段,题目要求输出yes.*解题思路:* 其实画图就知道,题目要的就是找到存在一个圈,并且这个圈所有权值的乘积* 是正的,如果把最长路的关系条件由加法改为乘法,那么就是说找一个所有乘* 积为的环。dij,floyd可以办到吗?显然不行,他们都处理不了带环的。这个时候* spfa跟Bellman_fo... 阅读全文
posted @ 2012-08-18 09:21 cchun 阅读(199) 评论(0) 推荐(0) 编辑
摘要: /**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 阅读(245) 评论(0) 推荐(0) 编辑
摘要: /**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 阅读(688) 评论(0) 推荐(0) 编辑
摘要: /**State: POJ3660 Accepted 208K 32MS C++ 960B *题目大意:* 有n只奶牛,有n个连续的实力,如果u的实力大于v的实力,就能打赢它,* 然后给定m种关系,求最后能确定其排名的奶牛个数。*解题思路:* 一开始用dij的最长路去求,发现有一种典型的DAG求不了,而传递闭包可以* 快速求解。其实dij可行,但是麻烦。没有floyd那么简洁优美啊。用floyd,求* 出每个点能到达的点。如果有一个点,排名在它之前的和排名在它之后的点之* ... 阅读全文
posted @ 2012-08-17 18:03 cchun 阅读(1515) 评论(0) 推荐(0) 编辑
摘要: /**State: POJ3177 Accepted 340K 16MS C++ 1877B*题目大意:* 给出一个无向连通图,判断最少需要加多少条边,才能使得* 任意两点之间至少有两条相互"边独立"的道路.注意,可能* 含有重边.*解题思路:* 先缩点,之后形成一棵树,然后求(叶子节点数量+1)/ 2即可。*/View Code 1 #include <iostream> 2 #include <vector> 3 #include <stack> 4 using namespace std; ... 阅读全文
posted @ 2012-08-16 08:40 cchun 阅读(787) 评论(0) 推荐(0) 编辑
摘要: /**State: POJ3160 Accepted 1812K 63MS C++ 3743B *题目大意:* 一个圣诞老人去给n个同学送东西,然后每个同学会给圣诞老人评价(可正负),* 然后n个同学的地址是一个有向有环图,每到一个同学家门口,圣诞老人可以* 选择进去,或者不进去,圣诞老人走到无路可走为止,然后要求给圣诞老人选* 一个起点,使得圣诞老人这次旅行获得的权值最大。*解题思路:* 题意看了好久啊,有向有环图,还可以选择拿权值或者不拿,最终要求总共最* 大权值,那么可以一开... 阅读全文
posted @ 2012-08-16 08:38 cchun 阅读(279) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 29 下一页