POJ 1734
#include<iostream>
#include<stdio.h>
#define MAXN 105
#define inf 123456789
using namespace std; int _m[MAXN][MAXN];
int floy[MAXN][MAXN];
int pre[MAXN][MAXN];
int ans[MAXN];
int n;
int num;
void floyd();
int main()
{
//freopen("acm.acm","r",stdin);
int m;
int u;
int v;
int i;
int j;
int len;
memset(_m,,sizeof(_m));
memset(pre,-,sizeof(pre));
cin>>n>>m;
for(i = ; i < n; ++ i)
{
for(j = ; j <n; ++ j)
{
floy[i][j] = inf;
floy[j][i] = inf;
}
floy[i][i] = ;
} for(i = ; i < m; ++ i)
{
cin>>u>>v>>len;
-- u;
-- v;
if(floy[u][v] > len)
{
_m[u][v] = _m[v][u] = len;
floy[u][v] = floy[v][u] = len;
pre[u][v] = v;
pre[v][u] = u;
} }
floyd();
if(num == )
{
cout<<"No solution."<<endl;
}
else
{
for(i = ; i < num; ++ i)
{
cout<<ans[i]+<<" ";
}
cout<<endl;
}
} void floyd()
{
int k;
int i;
int j;
int min = inf;
int temp;
num = ;
for(k = ; k < n; ++ k)
{
for(i = ; i < k; ++ i)
{
for(j = ; j < k; ++ j)
{
if(_m[i][k] && _m[k][j] && i != j)
{
if(_m[i][k] + _m[k][j] + floy[i][j] < min)
{
min = _m[i][k] + _m[k][j] + floy[i][j];
ans[] = k;
num = ;
int p = i;
while(p != -)
{
ans[num ++] = p;
p = pre[p][j];
// cout<<"00000000000"<<endl;
// cout<<p<<endl;
}
// return ;
}
}
}
} for(i = ; i < n; ++ i)
{
for(j = ; j < n; ++ j)
{
if(floy[i][k] + floy[k][j] < floy[i][j])
{
floy[i][j] = floy[i][k] + floy[k][j];
pre[i][j] = pre[i][k];
}
}
}
} }
关注我的公众号,当然,如果你对Java, Scala, Python等技术经验,以及编程日记,感兴趣的话。
技术网站地址: vmfor.com
POJ 1734的更多相关文章
- Sightseeing trip POJ - 1734 -Floyd 最小环
POJ - 1734 思路 : Floyd 实质 dp ,优化掉了第三维. dp [ i ] [ j ] [ k ] 指的是前k个点优化后 i -> j 的最短路. 所以我们就可以 ...
- POJ 1734 Sightseeing trip(无向图最小环+输出路径)
题目链接 #include <cstdio> #include <string> #include <cstring> #include <queue> ...
- POJ 1734.Sightseeing trip (Floyd 最小环)
Floyd 最小环模板题 code /* floyd最小环,记录路径,时间复杂度O(n^3) 不能处理负环 */ #include <iostream> #include <cstr ...
- POJ 1734 Sightseeing trip
题目大意: 求一个最小环. 用Floyd 求最小环算法. #include <iostream> #include <cstdlib> #include <cstdio& ...
- poj 1734 Sightseeing trip_ 最小环记录路径
题意:求最出小环,输出路径 #include <iostream> #include<cstdio> using namespace std; #define N 110 #d ...
- POJ 1734 求最小环路径 拓展Floyd
九野的博客,转载请注明出处:http://blog.csdn.net/acmmmm/article/details/11888019 题意: n个点 m条无向边 下面m条有权无向边 问图中最小环的路径 ...
- poj 1734 Sightseeing trip判断最短长度的环
Sightseeing trip Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5590 Accepted: 2151 ...
- 【POJ 1734】 Sightseeing Trip
[题目链接] 点击打开链接 [算法] floyd求最小环 输出路径的方法如下,对于i到j的最短路,我们记pre[i][j]表示j的上一步 在进行松弛操作的时候更新pre即可 [代码] #include ...
- poj 1734 floyd求最小环,可得到环上的每个点
#include<stdio.h> #include<string.h> #define inf 100000000 #define N 110 #define min(a, ...
随机推荐
- Android四大组件之一:Activity
介绍:活动是最基本的Android组件之一,在应用程序中,一个活动通常就是一个用户界面,每一个活动都被实现为一个独立的类,并且从活动几类中继承, 活动类将会显示由View控件组成的用户接口,并对时间E ...
- 模拟抛硬币(C语言实现)
实现代码: #include<stdio.h> #include<stdlib.h> int heads() { ; } int main(int argc, char *ar ...
- WinForm 实现验证码
private void CheckIdentifyingCode() { Random r = new Random(); string str = ""; for (int i ...
- MongoDB五种树形结构表示法
MongoDB五种树形结构表示法 第一种:父链接结构 db.categories.insert( { _id: "MongoDB", parent: "Databases ...
- 将开始我的WebForm控件开发之旅
时间总是过得很快,一转眼三个月就过去了,三个月内发生了很多的事.因为学校的学习,离开了我入门WPF的公司:开发了第一个外包项目,做的是WebForm的:而且了马上要毕业了,毕业后的公司应该是专门用We ...
- Ubuntu下编程环境GNU安装
ubuntu下C编程 环境搭建 其实,linux下写C也是很容易的.IDE的话用 eclipse 集成 CDT 模块就行了.当然这属于重量级的了,就如同VC++之于windows一样.那有没有像T ...
- BI与大数据
微博的诞生.云计算.物联网.移动互联网等各种爆炸式数据,给商业智能的蓬勃发展提供了良好的“大数据”环境.大数据为BI带来了海量数据.对挖掘来说,大数据量要更容易对比.抢夺大数据市场,需要具备一定的实力 ...
- RMAN备份失败之:mount: block device /dev/emcpowerc1 is write-protected, mounting read-only
今天再做巡检的时候发现有一台服务器的RMAN备份不正常,有一段时间没能正常备份了.检查了一下脚本,正常,定时任务列表也正常,再检查一下/var/log/cron的内容,也没有问题.尝试在该挂载点上创建 ...
- iOS JSON解析
解析json成dic对象 -(void)fetchedData:(NSData*)responseData {//parse out the json dataNSError* error; NSDi ...
- 动态模板中 SWIPER 划不动问题
原文: 地址:http://hao.jser.com/archive/8030/ 作者:segmentfault 问题: 动态循环生成swiper-slide类,在swiper-wrapper里生成6 ...