邮差小图
  • 板块灌水区
  • 楼主fbq20130211
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/12/8 11:57
  • 上次更新2024/12/8 15:08:24
查看原帖
邮差小图
809008
fbq20130211楼主2024/12/8 11:57
#include<bits/stdc++.h>	
using namespace std;
struct eg{
	int v,w;
};
struct no{
	long long d;
	int u;
	bool operator >(const no & o) const {
		return d>o.d;
	}
};
const int maxn=1e5+10;
int n,m;
vector<eg> e[maxn];
vector<eg> e2[maxn];
bool vis[maxn];
long long d[maxn]; 
void dk(int s, vector<eg> e[]){
	memset(vis,false,sizeof(vis));
	memset(d,0x3f,sizeof(d));
	priority_queue<no,vector<no>,greater<no>> q;
	d[s]=0;
	q.push({0,s});
	while(!q.empty()){
		int u=q.top().u;q.pop();
		if(vis[u]) continue;
		vis[u]=true;
		for(auto f:e[u]){
			int v=f.v,w=f.w;
			if(d[v]>d[u]+w){
				d[v]=d[u]+w;
				q.push({d[v],v});
			}
		} 
	}
}
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
	int u,v,w;
	cin>>u>>v>>w;
	e[u].push_back({v,w});
	e2[v].push_back({u,w});
} 
dk(1,e);
long long sum=0;
for(int i=1;i<=n;i++){
	sum+=d[i];
}
dk(1,e2);
for(int i=1;i<=n;i++){
	sum+=d[i];
}
cout<<sum;
   return 0;
} 
/*Compiling single file...
--------
- Filename: D:\fsjkfesbwug.cpp
- Compiler Name: TDM-GCC 4.9.2 64-bit Release

Processing C++ source file...
--------
- C++ Compiler: C:\Program Files (x86)\Dev-Cpp\MinGW64\bin\g++.exe
- Command: g++.exe "D:\fsjkfesbwug.cpp" -o "D:\fsjkfesbwug.exe" -std=c++11 -I"C:\Program Files (x86)\Dev-Cpp\MinGW64\include" -I"C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\include" -I"C:\Program Files (x86)\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include" -I"C:\Program Files (x86)\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include\c++" -L"C:\Program Files (x86)\Dev-Cpp\MinGW64\lib" -L"C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib" -static-libgcc

Compilation results...
--------
- Errors: 0
- Warnings: 0
- Output Filename: D:\fsjkfesbwug.exe
- Output Size: 1.83952903747559 MiB
- Compilation Time: 1.02s*/

2024/12/8 11:57
加载中...