Submission #4621310


Source Code Expand

#include<bits/stdc++.h>
#include<tr1/unordered_map>
#define CLR(a,x) memset(a,x,sizeof(a))
#define MP make_pair
#define fi first
#define se second
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<int,int> pa;
const int maxn=1e5+10;

inline ll rd(){
    ll x=0;char c=getchar();int neg=1;
    while(c<'0'||c>'9'){if(c=='-') neg=-1;c=getchar();}
    while(c>='0'&&c<='9') x=x*10+c-'0',c=getchar();
    return x*neg;
}

int N,eg[maxn*2][3],egh[maxn],ect;
int siz[maxn];
int aaa;
ll sum,n0,ans2,ans;

inline void adeg(int a,int b,int c){
	eg[++ect][0]=b,eg[ect][1]=egh[a],egh[a]=ect,eg[ect][2]=c;
}

inline void dfs(int x,int f,int ine){
	siz[x]=1;
	for(int i=egh[x];i;i=eg[i][1]){
		int b=eg[i][0];if(b==f) continue;
		dfs(b,x,i);siz[x]+=siz[b];
		n0+=eg[i][2]*(siz[b]>=N-siz[b]);
	}
	sum+=2ll*min(siz[x],N-siz[x])*eg[ine][2];
}

inline void dfs2(int x,int f,ll n){
	// printf("~%d %d %d\n",x,f,n);
	if(sum-n>ans&&n) ans=sum-n,aaa=x;
	for(int i=egh[x];i;i=eg[i][1]){
		int b=eg[i][0];if(b==f) continue;
		dfs2(b,x,n+eg[i][2]*((siz[b]<=N-siz[b])-(siz[b]>=N-siz[b])));
	}
}
inline void dfs3(int x,int f,ll n){
	if(x!=aaa) ans2=max(ans2,ans-n);
	for(int i=egh[x];i;i=eg[i][1]){
		int b=eg[i][0];if(b==f) continue;
		dfs3(b,x,n+eg[i][2]*((siz[b]<=N-siz[b])-(siz[b]>=N-siz[b])));
	}
}

int main(){
    //freopen("","r",stdin);
	N=rd();
	for(int i=1;i<N;i++){
		int a=rd(),b=rd(),c=rd();
		adeg(a,b,c),adeg(b,a,c);
	}
	dfs(1,0,0),dfs2(1,0,n0);
	// dfs3(1,0,n0);
	printf("%lld\n",ans);
    return 0;
}

Submission Info

Submission Time
Task D - Tree and Hamilton Path
User luogu_bot4
Language C++14 (GCC 5.4.1)
Score 1100
Code Size 1620 Byte
Status AC
Exec Time 32 ms
Memory 5632 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1100 / 1100
Status
AC × 2
AC × 38
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All sample_01.txt, sample_02.txt, sample_01.txt, sample_02.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
subtask_1_01.txt AC 1 ms 256 KB
subtask_1_02.txt AC 25 ms 3072 KB
subtask_1_03.txt AC 14 ms 1792 KB
subtask_1_04.txt AC 28 ms 3328 KB
subtask_1_05.txt AC 16 ms 2432 KB
subtask_1_06.txt AC 11 ms 1664 KB
subtask_1_07.txt AC 12 ms 1536 KB
subtask_1_08.txt AC 14 ms 1792 KB
subtask_1_09.txt AC 9 ms 1280 KB
subtask_1_10.txt AC 4 ms 896 KB
subtask_1_11.txt AC 8 ms 1152 KB
subtask_1_12.txt AC 28 ms 3328 KB
subtask_1_13.txt AC 28 ms 3328 KB
subtask_1_14.txt AC 28 ms 3328 KB
subtask_1_15.txt AC 28 ms 3328 KB
subtask_1_16.txt AC 28 ms 3328 KB
subtask_1_17.txt AC 28 ms 3328 KB
subtask_1_18.txt AC 28 ms 3328 KB
subtask_1_19.txt AC 28 ms 3328 KB
subtask_1_20.txt AC 28 ms 3328 KB
subtask_1_21.txt AC 28 ms 3328 KB
subtask_1_22.txt AC 28 ms 3456 KB
subtask_1_23.txt AC 31 ms 4864 KB
subtask_1_24.txt AC 31 ms 5504 KB
subtask_1_25.txt AC 28 ms 3328 KB
subtask_1_26.txt AC 29 ms 3968 KB
subtask_1_27.txt AC 31 ms 5248 KB
subtask_1_28.txt AC 28 ms 3456 KB
subtask_1_29.txt AC 32 ms 5632 KB
subtask_1_30.txt AC 30 ms 4992 KB
subtask_1_31.txt AC 24 ms 3328 KB
subtask_1_32.txt AC 24 ms 3328 KB
subtask_1_33.txt AC 15 ms 2560 KB
subtask_1_34.txt AC 20 ms 3328 KB