求调!!!
查看原帖
求调!!!
969929
zhanghaoyu1234567890楼主2024/11/8 23:30

样例过了,但零分。

#include<bits/stdc++.h>
using namespace std;
struct node{
    int v,w;
};
vector<node> a[1001];
bool used[1010];
long long dis[1010];
int n,m;
void djstl(int s){
	for(int i=1;i<n;i++){
        int u=0;
        for(int j=1;j<=n;j++){
            if(!used[j]&&dis[j]<dis[u]) u=j;
        }
        used[u]=true;
        for(auto it : a[u]){
            int v=it.v,w=it.w;
            if(dis[v]>dis[u]+w) dis[v]=dis[u]+w;
        }
    }
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=m;i++){
        int x,y,z;
        cin>>x>>y>>z;
        a[x].push_back({y,z});
    }
	long long ans=0;
    for(int k=1;k<=n;k++){
    	memset(used,false,sizeof(used));
		for(int i=0;i<=n;i++) dis[i]=1e9;
		dis[k]=0;
		djstl(k);
		if(k!=1) ans+=dis[1];
		else for(int i=2;i<=5;i++) ans+=dis[i];
	}
    cout<<ans;
    return 0;
}
2024/11/8 23:30
加载中...