Submission #717314

#TimeUsernameProblemLanguageResultExecution timeMemory
717314vjudge1Paths (RMI21_paths)C++17
19 / 100
1063 ms22728 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #define int long long #define endl '\n' using namespace std; using namespace __gnu_pbds; using ordered_set = tree<pair<int,int>,null_type,less<pair<int,int>>,rb_tree_tag,tree_order_statistics_node_update>; vector<pair<int,int>>vct[100001]; map<pair<int,int>,int>mp; int ans,n,in=1; void slv(){ priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>>pq; pq.push({0,in}); vector<int>vis(n+1); vis[in]=in; while(pq.size()){ int a=pq.top().second,b=pq.top().first; pq.pop(); in=a; for(auto &i:vct[a]){ if(!vis[i.first]){ vis[i.first]=a; pq.push({b+mp[{a,i.first}],i.first}); } } } int I=in; while(vis[I]!=I){ ans+=mp[{vis[I],I}]; mp[{vis[I],I}]=0; mp[{I,vis[I]}]=0; I=vis[I]; } } signed main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); int k; cin>>n>>k; for(int i=1;i<n;i++){ int a,b,c; cin>>a>>b>>c; vct[a].push_back({b,c}); vct[b].push_back({a,c}); } int K=k; for(int w=1;w<=n;w++){ ans=0; in=w; for(int j=1;j<=n;j++){ for(auto &z:vct[j]){ mp[{j,z.first}]=z.second; } } k=K; while(k--)slv(); cout<<ans<<endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...