泡沫

博客园 首页 联系 订阅 管理

2013年4月19日

摘要: 最小环问题:求个图中环路径代价最小的回路。如何求最小环?假如有 路径1->3->2,如果此时已经知道2-1的最短路径就好了。 回想下floyed的更新过程,就会发现更新第k次时,比k小的点之间都是最短距离的(要是点是联通的话)。所以给出解法:第k次更新图时,枚举和k相连的两条边。如 环路代价 = dist[i][k] + dist[k][j] + dist[j][i];求无向图中最小环的个数,先算出一个最小环代价,把之后算出的环代价与之对比更新就可以了。这个图中是求不同的最小环的个数,所以重边是没有影响的fzu 2090 http://acm.fzu.edu.cn/problem. 阅读全文
posted @ 2013-04-19 21:33 木-天空 阅读(3065) 评论(1) 推荐(1) 编辑

摘要: hdoj 1175http://acm.hdu.edu.cn/showproblem.php?pid=1175这题是简单的搜索,给图图中的两个位置,问这两个位置是否可以消去。有以下情况不能消去:1,起点和终点有任意一个是非法点,即不是图中的点;2,起点和终点有任意一个是数值为0的点,即该点事空的。3,起点和终点的数值不相同。4,起点和终点的最短距离大于2,这个最短距离是指转弯的次数。前3点都是直接可以处理的,对于第四点我是采用bfs搜的。记录当前节点的方向和转弯次数即可。在hdoj c++ 提交 跑了109ms, 弱啊 !View Code 1 // 用node记录上一次的方向,但是结束条件. 阅读全文
posted @ 2013-04-19 20:09 木-天空 阅读(289) 评论(0) 推荐(0) 编辑

摘要: 按位dp:对于当前长度i是枚举该为的值(0~10),统计出区间内合法的数;下面是基础入门的3题;hdoj 2089http://acm.hdu.edu.cn/showproblem.php?pid=2089区间数内不包含4和62的数的个数View Code 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 using namespace std; 6 7 8 int num[10][10]; 9 10 // 预处理长度为i 阅读全文
posted @ 2013-04-19 16:26 木-天空 阅读(476) 评论(0) 推荐(0) 编辑