HDU
来源:互联网 发布:精准医疗大数据平台 编辑:程序博客网 时间:2024/06/08 04:39
三种方法
1 dijkstra的堆优化
2 bellman的队列优化
3 floyd
#include <iostream>#include <cstdlib>#include <cstdio>#include <cstring>#include <queue>#include <stack>#include <string>using namespace std;const int maxn=300;struct Node{ int w,to; Node(int _a,int _b){w=_a;to=_b;}};vector<Node>G[maxn];void init(){ for(int i=0;i<maxn;i++) G[i].clear();}struct cmp{ bool operator()(pair<int,int>a,pair<int,int>b){ return a.first>b.first; };};int main(){ int m,n; int a,b,c; while(cin>>m>>n) { init(); for(int i=1;i<=n;i++) {cin>>a>>b>>c; G[a].push_back(Node(c,b)); G[b].push_back(Node(c,a)); } cin>>a>>b; priority_queue<pair<int,int> ,vector<pair<int,int> >,cmp>q; bool vis[maxn]; int d[maxn]; memset(vis,false,sizeof(vis)); memset(d,0x3f,sizeof(d)); q.push(make_pair(0,a)); d[a]=0; vis[a]=true; while(!q.empty()) { int u=q.top().second; q.pop(); vis[u]=false; for(int i=0;i<G[u].size();i++) { int s=G[u][i].to; if(d[s]>G[u][i].w+d[u]) { d[s]=G[u][i].w+d[u]; if(!vis[s]) { q.push(make_pair(d[s],s)); vis[s]=true; } } } } if(d[b]==0x3f3f3f3f) puts("-1"); else cout<<d[b]<<endl; } return 0;}
#include <iostream>#include <cstdlib>#include <cstdio>#include <cstring>#include <queue>#include <stack>#include <string>using namespace std;const int maxn=300;struct Node{ int w,to; Node(int _a,int _b){w=_a;to=_b;}};vector<Node>G[maxn];void init(){ for(int i=0;i<maxn;i++) G[i].clear();}int main(){ int m,n; int a,b,c; while(cin>>m>>n) { init(); for(int i=1;i<=n;i++) {cin>>a>>b>>c; G[a].push_back(Node(c,b)); G[b].push_back(Node(c,a)); } cin>>a>>b; queue<int>q; bool vis[maxn]; int d[maxn]; memset(vis,false,sizeof(vis)); memset(d,0x3f,sizeof(d)); q.push(a); d[a]=0; vis[a]=true; while(!q.empty()) { int u=q.front(); q.pop(); vis[u]=false; for(int i=0;i<G[u].size();i++) { int s=G[u][i].to; if(d[s]>G[u][i].w+d[u]) { d[s]=G[u][i].w+d[u]; if(!vis[s]) { q.push(s); vis[s]=true; } } } } if(d[b]==0x3f3f3f3f) puts("-1"); else cout<<d[b]<<endl; } return 0;}
#include<iostream>#include<cstdio>#include<list>#include<algorithm>#include<cstring>#include<string>#include<queue>#include<stack>#include<map>#include<vector>#include<cmath>#include<memory.h>#include<set>using namespace std;int dp[202][202];int main(){ //ios::sync_with_stdio(false); int m,n; int a,b,c; while(cin>>m>>n) {memset(dp,0x3f,sizeof(dp)); for(int i=0;i<n;i++) {cin>>a>>b>>c; if(c<dp[a][b]) {dp[a][b]=c; dp[b][a]=c;} } for(int i=0;i<m;i++) dp[i][i]=0; for(int k=0;k<m;k++) { for(int i=0;i<m;i++) { for(int j=0;j<m;j++) dp[i][j]=min(dp[i][k]+dp[k][j],dp[i][j]); } } cin>>a>>b; if(dp[a][b]==0x3f3f3f3f) puts("-1"); else cout<<dp[a][b]<<endl;} return 0;}
阅读全文
0 0
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- hdu
- HDU
- Hdu
- hdu
- hdu-
- hdu
- hdu
- hdu
- HDU
- 哪些企业更适合开发微信小程序?
- jenkins sonar tomcat git实现自动部署
- js定时器的使用
- 前端的面试知识点
- python简易爬虫
- HDU
- 冒泡排序练习题
- vue--自定义全局方法,在组件里面使用
- css calc()用法
- 微信公众号接入指南
- dovecot+mariadb
- 一道狄利克雷卷积模板题的组合做法
- AngularJS杂记3----创建指令
- org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML.问题思路