题目大意
求一个无向图的最小环
题解
如果是有向图的话,只需要令f[i][i]=+∞f[i][i]=+\infty,再floyd即可;
对无向图,应该在floyd算法循环至k的一开始进行如下操作:
枚举i和j,如果点i存在经过点j的环,则用i→ki\to k,k→jk\to j,j→编号小于k的结点→ij\to编号小于k的结点\to i 的最短路去更新最小环的长度,
即ans=min{an...
分类:
其他好文 时间:
2015-07-12 11:14:35
阅读次数:
99
第一部分 走进Java 1.Java技术体系 Sun官方定义的Java技术体系包括一下几个组成部分: Java程序设语言 各种硬件平台上的Java虚拟机 Class文件格式 Java API类库 第三方Java类库 JDK是用于支持Java程序开发的最小环境,Java程序设计语言、Java虚拟机、J...
分类:
编程语言 时间:
2015-06-28 21:28:15
阅读次数:
141
结合得好巧妙。。。。化简后的问题是:给你两个点集A,B,求B的一个子集BB,使得BB的凸包包含A的凸包,求BB的最小大小。先特判答案为1,2的情况,答案为3的情况,我们先构造一个有向图:对于B集合中的两个点u,v,如果 所有A集合的点都在u->v的左侧,那么就连一条u->v的边。于是我们可以证明一个...
分类:
其他好文 时间:
2015-05-27 21:03:47
阅读次数:
497
输出节点数为奇数且最小环的节点数
开始开2维数组果断超内存,看了别人的代码才知道用奇偶性来标记
#include
#include
#include
#include
#define maxn 10000+1
using namespace std;
vectormapp[maxn];
int n,m;
int visit[maxn][2];
struct stu
{
int pre;
i...
分类:
其他好文 时间:
2015-05-21 09:07:32
阅读次数:
172
学(fuxi)了一阵子简要总结一下
floyd 全跑一边 点的三次方 100以下都呛 与点有关 无关边数 (可用于求解最小环)
dij裸 点的二次方 每次贪心取最小的松弛
SPFA km k期望2 与边有关 稀疏图最好 搭配边表 最坏情况可能比上面的还慢 唯一可判负环
Bellman-Ford SPFA复杂版 不考虑
dij优化 mlogn 更多与边有关 或许是稠密图的最优解决...
分类:
其他好文 时间:
2015-05-19 19:03:09
阅读次数:
172
题目链接:HDU - 1599杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,....VK,V1,那么必须满足K>2,就是说至除了出发点以外至少要经过2个其他不同的景区,而且不能重复经过同一个景区。现在860...
分类:
其他好文 时间:
2015-05-09 23:24:36
阅读次数:
127
find the mincost route
Time Limit: 1000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2995 Accepted Submission(s): 1204
Problem Description
杭州有N个景区...
分类:
编程语言 时间:
2015-05-07 08:58:35
阅读次数:
187
首先,我们可以舍弃掉第三维,那样的话每种金属就是平面上的点了。对于任意两个点x,y,假如用户点都不在右边,则从x至y连条长度为1的有向边。然后Flody求个最小环。#include #include #include #include #include #include #include #defi...
分类:
Web程序 时间:
2015-05-05 21:11:38
阅读次数:
147
Floyd算法:用来找出每对点之间的最短距离。图可以是无向图,也可以是有向图,边权可为正,也可以为负,唯一要求是不能有负环。
1.初始化:将Map[][]中的数据复制到Dist[][]中作为每对顶点之间的最短路径的初值,Pre[i][j] = i 表示 i 到 j 路径中 j 的前一节点。
2. k 从 1 到 N 循环 N 次,每次循环中,枚举图中不同的两点 i,j,如果Dist[i][j]...
分类:
其他好文 时间:
2015-05-04 22:07:36
阅读次数:
113
杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,....VK,V1,那么必须满足K>2,就是说至除了出发点以外至少要经过2个其他不同的景区,而且不能重复经过同一个景区。现在8600需要你帮他找一条这样的路线,并且花费越少越好。
做法:更新前k-1 个点做为中间点,那么dp[i][j] 和mp[i][k] 和 mp[j][k]之间肯定没有重复的点了。 floyd 的应用题。...
分类:
其他好文 时间:
2015-05-02 12:29:13
阅读次数:
83