hdu1874 畅通工程续---dij
来源:互联网 发布:linux网络配置文件 编辑:程序博客网 时间:2024/05/22 05:26
题号不错。。再来水一道
发现这种类型题目很多坑 比如有没有给重边啊 比如对起点的处理。。
#include <iostream>#include <cstring>#include <string>#include <cstdio>#include <cmath>#include <algorithm>#include <vector>#include <queue>#include <map>#define inf 0x3f3f3f3fusing namespace std;int n,m,sta,end,dis[210][210],d[210],vis[210];void dij(int a,int b){ int i,j,k,mm; memset(vis,0,sizeof vis); for(i=0;i<n;i++) d[i]=dis[a][i]; vis[a]=1;d[a]=0;//dis[a][a]=inf for(i=0;i<n;i++) { mm=inf;k=201; for(j=0;j<n;j++) { if(!vis[j]&&d[j]<mm) { mm=d[j]; k=j; } } if(k==b) break; vis[k]=1; for(j=0;j<n;j++) { if(!vis[j]&&(mm+dis[k][j]<d[j])) d[j]=dis[k][j]+mm; } }}int main(){ int u,v,w,i,j; while(~scanf("%d%d",&n,&m)) { memset(dis,0x3f,sizeof dis); for(i=0;i<m;i++) { scanf("%d%d%d",&u,&v,&w); if(w<dis[u][v]) dis[u][v]=dis[v][u]=w;//第一个wa点 } scanf("%d%d",&sta,&end); /*if(sta==end)//虽然题目说了STA!=END 但我加上为什么就WA?! { printf("-1\n"); continue; }*/ dij(sta,end); printf("%d\n",d[end]==inf?-1:d[end]); } return 0;}
- hdu1874 畅通工程续---dij
- hdu1874畅通工程续
- hdu1874 畅通工程续
- HDU1874 畅通工程续
- HDU1874 畅通工程续
- hdu1874 畅通工程续
- HDU1874:畅通工程续
- hdu1874畅通工程续
- hdu1874畅通工程续
- hdu1874畅通工程续
- HDU1874 畅通工程续
- hdu1874 畅通工程续
- HDU1874畅通工程续
- HDU1874 畅通工程续
- HDU1874-畅通工程续
- HDU1874----畅通工程续
- HDU1874畅通工程续
- HDU1874 畅通工程续
- 采购订单状态更改处理API
- linux 设置路由器
- ubuntu 安装java
- AP模块NOTE修改API
- 杨辉三角
- hdu1874 畅通工程续---dij
- 4卡结束的遇到问题
- 为什么要每天这样
- Struts2----访问Web元素
- ubuntu12.04 使用gnome shell后恢复窗口最小化 最大化 功能
- 供应商导入的API补充(详解EBS接口开发之供应商导入)
- ueditor 文件上传
- linux安装jre
- 物料分类新增&更新