杭电3790最短路径问题
最短路径问题
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 17946 Accepted Submission(s): 5374
(1<n<=1000, 0<m<100000, s != t)
#include<stdio.h>
#include<string.h>
#define N 0x3f3f3f
#include<algorithm>
using namespace std;
int map[1010][1010],dis[1010],cost[1010],vis[1010],m,n,money[1010][1010];void dj(int v){int i,j,k;memset(vis,0,sizeof(vis));for(i=1;i<=m;i++){dis[i]=map[v][i];cost[i]=money[v][i];//同样的思维,把花费给并进去. }vis[v]=1;for(i=1;i<=m;i++){int min=N;//但是仍旧按照距离的长短进行松弛 for(j=1;j<=m;j++){if(!vis[j]&&dis[j]<min){min=dis[j];k=j;}}vis[k]=1;for(j=1;j<=m;j++)//得到最短路径时,在考虑花费的问题 {if(!vis[j]&&dis[j]>dis[k]+map[k][j])//这一点还是不是十分清楚,为什么这种写法就对。 {dis[j]=dis[k]+map[k][j];//if(cost[j]>=cost[k]+money[k][j])cost[j]=cost[k]+money[k][j];}else if(!vis[j]&&dis[j]==dis[k]+map[k][j]&&cost[j]>cost[k]+money[k][j])cost[j]=cost[k]+money[k][j];//if(!vis[j]&&dis[j]>dis[k]+map[k][j])//为什么这种写法就错,确实不一样,但是不影响结果啊 //{// dis[j]=dis[k]+map[k][j];// cost[j]=cost[k]+money[k][j];// if(cost[j]>cost[k]+money[k][j]&&dis[j]==dis[k]+map[k][j])// cost[j]=cost[k]+money[k][j];//}}}}int main(){int i,j,x,y,z,p,w;while(scanf("%d%d",&m,&n)&&(m||n)){for(i=1;i<=m;i++)for(j=1;j<=m;j++)map[i][j]=money[i][j]=N;for(i=0;i<n;i++){scanf("%d%d%d%d",&x,&y,&z,&w);if(map[x][y]>=z){map[x][y]=map[y][x]=z;//if(money[x][y]>w)money[x][y]=money[y][x]=w;//把需要的花费和距离 一样用迪杰斯特拉算法。 }}int start,end;scanf("%d%d",&start,&end);dj(start);printf("%d %d\n",dis[end],cost[end]);}return 0;}
杭电3790最短路径问题相关推荐
- 杭电1874————单源最短路径(dijkstra)
畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- 杭电OJ分类题目(4)-Graph
原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(4) HDU Graph Theory - U ...
- 杭电1044java实现dfs bfs
Collect More Jewels 问题描述 它写在"夫人的书:创世之后,残酷的神摩洛克反抗了造物主马尔杜克的权威.摩尔从马尔杜克那里偷走了众神中所有神器中最强大的一件,也就是叶多尔的护 ...
- 杭电1874畅通工程续
畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- 杭电 2544 最短路(bellman详解)
首先介绍一下bellman算法: Bellman-ford算法是求含负权图的单源最短路径算法,效率很低,但代码很容易写.即进行持续地松弛(原文是这么写的,为什么要叫松弛,争议很大),每次松弛把每条边都 ...
- 2019杭电计算机考研经验贴(初试+复试)
为期一年的杭电考研之旅结束啦!一年的付出总算没有白费,顺利上岸,进入杭电脑机交互实验室.今天和导师签了双选表,现在在回学校的高铁上,想着写一份经验贴,为下一届考研的学弟学妹们留下点东西. 一.初试 杭 ...
- hdoj杭电问题分类
杭电上的题虽然多,但是一直苦于找不到问题分类,网页都是英文的,所以平时做题也没怎么看,今天仔细一看,问题分类竟然就在主页....做了那么久的题居然没发现,表示已经狗带..不要笑,不知道有没有像我一样傻 ...
- 杭电计算机考研(初试+复试)经验分享
GitHub: KolinHuang 个人博客:KolHuang Blog 欢迎交流- 写在前头 离复试结束已经快半个月了,现在才想起来写这么一篇经验贴,供广大考研人参考参考- 本人报考的是杭州电子科 ...
- 杭电OJ第11页2065~2069算法题(C语言)
目录 2065."红色病毒"问题 2066.一个人的旅行 2067.小兔的棋盘 2068.RPG的错排 2069.Coin Change 2065."红色病毒" ...
最新文章
- dede 怎样调用其它栏目的文章或者缩略图列表且有分页效果?
- Spring Boot 动态注入的两种方式
- 时代风口下,东软集团软件业务怎么转型?
- 网站通过了QQ安全认证了
- java喷泉编码_Java干货分享使用JS实现简单喷泉效果
- 未来 12 个月,哪种编程语言将会流行?
- Mac上运行windows,你还在用双系统or虚拟机?
- Java 6 变量 代码块
- 数据-第11课-双向链表
- ODB for mysql
- 小米路由器3无线网连接到服务器,小米路由器3无线中继(桥接)怎么设置?
- windows11关闭安全中心的病毒和威胁防护时,打不开,弹出打开应用需要打开windowsdefender链接问题
- java图片叠加_[原创]JAVA中图片上叠加文字的方法
- 【微信小程序】rpx
- 利用B站《无价之姐》弹幕合成词云跳舞
- 市面最经典的中文版需求分析说明书模板 详细讲解各目录含义 分离需求说明和需求分析
- IC芯片制造过程简介
- spring实战笔记_第4章
- 浅谈 yso的 Commons-Collections1 (cc1)反序列化链 如何手写这条链子
- LeetCode解题(1)----------8 字符串转换整数[go]