Submission #717349

#TimeUsernameProblemLanguageResultExecution timeMemory
717349vjudge1Paths (RMI21_paths)C++17
0 / 100
1 ms468 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[1001]; int mp[1001][1001]; int ans,n,in=1; void slv(){ deque<pair<int,int>>pq={{0,in}}; vector<int>vis(n+1); int g=0; vis[in]=in; while(pq.size()){ int a=pq.front().second,b=pq.front().first; pq.pop_front(); if(b>=g){ g=b; in=a; } for(auto &i:vct[a]){ if(!vis[i.first]){ vis[i.first]=a; pq.push_back({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...