欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 代码随想录第59天

代码随想录第59天

2025/2/26 22:12:19 来源:https://blog.csdn.net/weixin_43631425/article/details/144777726  浏览:    关键词:代码随想录第59天

卡码网:47. 参加科学大会

#include <iostream>
#include <unordered_set>
#include <queue>
#include <vector> 
#include <climits>using namespace std;struct cmp{bool operator ()(vector<int> a, vector<int> b) {return a[2] > b[2];} 
};int main(){int n, m;cin>> n>> m;vector<vector<vector<int>>> graph(n+1);for(int i=0; i<m; i++){int start, end, len;cin>>start>>end>>len;graph[start].push_back({start, end,  len});}unordered_set<int> set;priority_queue<vector<int>, vector<vector<int>>, cmp> que;vector<int> length(n+1, INT_MAX);set.insert(1);for(int i=0; i<graph[1].size(); i++){if( set.find(graph[1][i][1]) == set.end() ){que.push(graph[1][i]);length[graph[1][i][1]] = graph[1][i][2];}}length[1] = 0;while( !que.empty() ){auto bian = que.top();if( set.find(bian[1]) != set.end() ){que.pop();} else {length[ bian[1] ] = min(length[bian[1]], length[bian[0]] + bian[2]);que.pop();set.insert(bian[1]);for(int i=0; i<graph[bian[1]].size(); i++){if( set.find(graph[bian[1]][i][1]) == set.end() ){que.push(graph[bian[1]][i]);}}}}if( length[n] == INT_MAX) cout<<-1;else  cout<<length[n];return 0;
}

卡码网:94. 城市间货物运输 I

import java.util.*;
class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc.nextInt();int bian= sc.nextInt();int [][]map=new int[n+1][n+1];for (int i = 0; i <= n; i++) {Arrays.fill(map[i],Integer.MAX_VALUE);}for (int i = 0; i < bian; i++) {int s1=sc.nextInt(),s2=sc.nextInt(),s3=sc.nextInt();map[s1][s2]=s3;}int[] res = new int[n + 1];Arrays.fill(res,Integer.MAX_VALUE);res[1]=0;for(int k=0;k<n;k++){for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {if(map[i][j]!=Integer.MAX_VALUE&&res[i]!=Integer.MAX_VALUE){if(res[i]+map[i][j]<res[j]){res[j]=res[i]+map[i][j];}}}}}System.out.println(res[n]==Integer.MAX_VALUE?"unconnected":res[n]);}
}

热搜词