/ Randle /

记录详情

Time Exceeded


  
# 状态 耗时 内存占用
#1 Accepted 2ms 256.0 KiB
#2 Accepted 2ms 256.0 KiB
#3 Accepted 2ms 344.0 KiB
#4 Accepted 6ms 256.0 KiB
#5 Accepted 8ms 256.0 KiB
#6 Accepted 15ms 332.0 KiB
#7 Accepted 14ms 256.0 KiB
#8 Accepted 210ms 384.0 KiB
#9 Time Exceeded ≥1004ms ≥896.0 KiB
#10 Time Exceeded ≥1003ms ≥1.066 MiB

代码

#include<iostream>
#include<cstring>
#define maxn 50001
using namespace std;
struct node
{
	int x,y;
	int len;
};
node a[maxn];
int n,dis[maxn];
long long ans=0;
int main()
{
	//freopen("tour.in.txt","r",stdin);
	//freopen("tour.out.txt","w",stdout);
	int MAX=0;
	cin>>n;
	for(int i=1;i<=n;i++)
	dis[i]=100000;
	for(int i=1;i<n;i++)
	{
		cin>>a[i].x>>a[i].y>>a[i].len;
		ans+=a[i].len*2;
	}
	dis[1]=0;
	//for(int i=1;i<=n;i++)
	//cout<<"dis["<<i<<"]="<<dis[i]<<endl;
	for(int o=1;o<=n;o++)
	{
		bool mt=false;
	    for(int i=1;i<=n;i++)
    	{
	    	for(int j=1;j<=n;j++)
	    	{
		    	if(a[i].x==j&&dis[a[i].y]!=100000)
		    	{
			    	if(dis[j]>dis[a[i].y]+a[i].len)
			    	{
			    		dis[j]=dis[a[i].y]+a[i].len;
			    		mt=true;
					}
			    }
			    else if(a[i].y==j&&dis[a[i].x]!=100000)
			    {
				    if(dis[j]>dis[a[i].x]+a[i].len)
				    {
				    	dis[j]=dis[a[i].x]+a[i].len;
				    	mt=true;
					}
			    }
	    	}
	    }
	    if(!mt)
		break;
	}
	for(int i=1;i<=n;i++)
	{
		//cout<<"dis["<<i<<"]="<<dis[i]<<endl;
	    if(dis[i]>MAX)
	    MAX=dis[i];
	}
	//cout<<"ans="<<ans<<"  MAX="<<MAX<<endl;
	cout<<ans-MAX<<endl;
	return 0;
}

信息

递交者
类型
递交
题目
游 T2
题目数据
下载
语言
C++
递交时间
2017-09-09 15:48:00
评测时间
2017-09-09 15:48:00
评测机
分数
8
总耗时
≥2272ms
峰值内存
≥1.066 MiB