1 条题解

  • 0
    @ 2025-11-30 16:28:07

    C++ :

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    int n,k,a[101][101],dis[101],sum=0,tot=0;
    void work(int);
    int main()
    {
    	memset(a,0x7f,sizeof(a));
    	cin>>n>>k;
    	int x,y,t;
    	for(int i=1;i<=k;i++)
    	{
    		cin>>x>>y>>t;
    		a[x][y]=a[y][x]=t;
    		tot+=t;
    	}
    	work(1);
    	cout<<tot-sum;
    }
    void work(int x)
    {
    	for(int i=1;i<=n;i++) dis[i]=a[x][i];
    	dis[x]=0;
    	for(int j=1;j<=n;j++)
    	{
    		int k,mi=0x7f7f7f7f;
    		for(int i=1;i<=n;i++)
    		{
    			if(dis[i]<mi&&dis[i]!=0)
    			{
    				mi=dis[i];
    				k=i;
    			}
    		}
    		sum+=dis[k];
    		dis[k]=0;
    		for(int i=1;i<=n;i++)
    		{
    			if(dis[i]>a[k][i]) dis[i]=a[k][i];
    		}
    	}
    }
    
    • 1

    信息

    ID
    1467
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者