2012年8月14日

HDU 1181 变形课 (用传递闭包做)

摘要: 题目:http://acm.hdu.edu.cn/showproblem.php?pid=1181题意:转化成有向图,是否存在从b到m的通路传递闭包代码:#include <iostream>#include <cstring>using namespace std;const int M = 50;int g[M][M];int main(){ char str[100]; int n = 26; while (~scanf("%s", str)) { if (str[0] != '0') { ... 阅读全文

posted @ 2012-08-14 22:55 [S*I]SImMon_WCG______* 阅读(219) 评论(0) 推荐(0) 编辑

HDU 1704 Rank (传递闭包)

摘要: 题目:http://acm.hdu.edu.cn/showproblem.php?pid=1704题意:最多能找出多少条不通的路。。。。。题目没有说明不会有回路,因为如果有回路的话,回路里的对手都不能分出胜负。。。。而杭电的数据说明了不会有回路的。传递闭包:用来求图中,任意两点是否可以通,思想类似Floyed,都是3重循环,Floyed:是否存在一个中间点,使得从起点——》中间点——》终点跟短,传递闭包:是否存在一个中间点,起点到终点本来不通的,但从起点——》中间点——》终点这条路走的话就通了(书上本来是g[i][j] = g[i][j] || (g[i][k] && g[k] 阅读全文

posted @ 2012-08-14 22:25 [S*I]SImMon_WCG______* 阅读(760) 评论(0) 推荐(1) 编辑

HDU 1217 Arbitrage (初学Floyed)

摘要: 题目:http://acm.hdu.edu.cn/showproblem.php?pid=1217题意:转化成图,然后求是否存在某回路,其权值的积大于1Floyed是求任意两点间的最短路径的,用了动态规划,思想和松弛一样,其中有个k,是指最短路径的中间点都在集合1....k里,然后k从小到大推,当k最大的时候就得到结果。。。。松弛思想在g[i][k]*g[k][j]和g[i][j]中选择。。。而这题则是求最大,且是乘积。。。所以要改下。。。。但是转化成图哪里就不用多说了,但是我才发现map A<string, int> 中的string 可以用char str[...]来代替,即可 阅读全文

posted @ 2012-08-14 20:53 [S*I]SImMon_WCG______* 阅读(341) 评论(0) 推荐(0) 编辑

导航