2 solutions
-
0
Guest MOD
-
0
BFS板Dijkstra
歪解#include <bits/stdc++.h> using namespace std; #define st long long #define kl unsigned #define ab register #define und_map(a,b) unordered_map<a,b> #define kill(x) {cout<<x;exit(0);} #define all(x) x.begin(),x.end() const st N=3e5+7; int n,a[N],b[N],x[N]; vector< pair<int,int> > g[N]; st dist[N]; queue<int> q; int main() { cin>>n; for(int i=1;i<n;i++) cin>>a[i]>>b[i]>>x[i]; memset(dist,0x3f,sizeof dist); for(int i=1;i<n;i++) { g[i].push_back({i+1,a[i]}),g[i].push_back({x[i],b[i]}); } dist[1]=0; q.push(1); while(not q.empty()) { int cur=q.front(); q.pop(); for(int i=0;i<g[cur].size();i++) { if(dist[cur]+g[cur][i].second<dist[g[cur][i].first]) { q.push(g[cur][i].first); dist[g[cur][i].first]=dist[cur]+g[cur][i].second; } } } cout<<dist[n]; return 0*6308*1126*7502*3916; }
Information
- ID
- 346
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 4
- Tags
- (None)
- # Submissions
- 41
- Accepted
- 21
- Uploaded By