HDU 1596 也是最小路径Dijkstra
2024-09-06 15:10:56
#include<cstdio>
#include<cmath>
#include<cstring>
const int qq=+;
double dist[qq];
double city[qq][qq];
int vis[qq];
int n,m;
int s,e;
void Dijkstra()
{
double MAX;
int u;
for(int i=;i<=n;++i){
vis[i]=;
dist[i]=city[s][i];
}
vis[s]=;
for(int l=;l<=n;++l){
MAX=;u=s;
for(int i=;i<=n;++i)
if(!vis[i] && dist[i] > MAX)
MAX = dist[u=i];
if(MAX==) break;
if(u==e) break;
vis[u]=;
for(int i=;i<=n;++i)
if(!vis[i]){
if(dist[i]<dist[u]*city[u][i])
dist[i]=dist[u]*city[u][i];
if(dist[i]<dist[u]*city[i][u])
dist[i]=dist[u]*city[u][i];
} }
if(u!=e) printf("What a pity!\n");
else printf("%.3lf\n",dist[e]);
}
int main()
{
while(~scanf("%d",&n)){
for(int j,i=;i<=n;++i)
for(j=;j<=n;++j)
scanf("%lf",&city[i][j]);
scanf("%d",&m);
for(int i=;i<m;++i){
scanf("%d %d",&s,&e);
Dijkstra();
}
}
}
将原来的+换成*就行了、模板懂了这题就是水题了
最新文章
- 转 -- linux IO子系统和文件系统读写流程
- 全局对象的构造函数会在main 函数之前执行
- 【Robot Framework】robot framework 学习以及selenium、appnium、requests实践(一)
- 5.2使用select,poll
- LeetCode First Bad Version (二分查找)
- Android Service与Activity之间通信的几种方式
- Lisp的永恒之道 好文
- 优化 or 语句
- (二十四)mongodb中group的问题二
- Android 网页打开app(或者打开指定页面)并且接收参数
- 碰到了通过Movie显示gif图片,有部分图片的duration为0导致gif只显示第一帧
- linux rzsz(lrzsz)安装
- python list的函数
- Swift学习笔记8--Optional Chaining
- 【Python爬虫】BeautifulSoup网页解析库
- DUBBO本地搭建及小案例 (转)
- Visual Studio 2013编译Mozilla NPAPI 示例注意事项
- hdu2328 kmp
- linux下面mmap和setsignal函数用法
- 封ip对爬虫的影响