RT

2 条评论

  • @ 2021-8-13 9:54:01

    Luogu 上的第一篇题解可以通过此题。

    请检查你的程序是否一定可以通过数据范围内的所有测试数据,造成两 OJ 上不同得分的原因可能是两边的测试数据不同。

  • @ 2021-8-13 8:08:52
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    #include<queue>
    #include<stack>
    #include<vector>
    #include<set>
    #include<map>
    #include<algorithm>
    //#include<unordered_set>
    using namespace std;
    #define int long long
    const int N = 5*1e5*2 * 2+10,M = 110,inf = 0x3f3f3f3f;
    
    
    
    template <class T> void read(T &w){
    	w=0;int f=1;char ch=getchar();
    	while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}
    	while(isdigit(ch)){(w*=10)+=ch-'0';ch=getchar();}
    	w*=f;
    }
    
    template <class T> void write(T w){
    	if(w<0){putchar('-');w*=-1;}
    	if(w/10) write(w/10);
    	putchar(w%10+'0');
    }
    
    int h[N], ne[N], e[N], w[N], idx = 1;
    int in[N], dep[N];
    int f[N];
    
    int n,s;
    int ans = 0;
    
    
    
    void add(int a,int b,int c)
    {
    	e[idx] = b;
    	ne[idx] = h[a];
    	w[idx] = c;
    	h[a] = idx ++;
    }
    
    void dfs1(int u,int fa)
    {
    	for(int i = h[u]; ~i; i = ne[i])
    	{
    		int y = e[i];
    		if(y == fa) continue;
    		dfs1(y,u);
    		dep[u] = max(dep[y] + w[i], dep[u]);
    	}
    }
    
    void dfs2(int u,int fa)
    {
    	for(int i = h[u]; ~i; i = ne[i])
    	{
    		int y = e[i];
    		if(y == fa) continue;
    		dfs2(y,u);
    		f[u] += f[y] + dep[u] - (dep[y] + w[i]);
    	}
    }
    
    signed main()
    {
    	read(n);
    	read(s);
    	memset(h, -1, sizeof h);
    	for(int i = 1; i <= n - 1; i ++)
    	{
    		int a,b,t;
    		read(a), read(b), read(t);
    		add(a,b,t), add(b,a,t);
    		in[a] ++, in[b] ++;
    	}
    	
    	dfs1(s,0);
    	
    	//-------------------------------------------------------------------------
    	dfs2(s,0);
    	write(f[s]);
    
    	return 0;
    }
    • 1

    信息

    ID
    1060
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    (无)
    递交数
    69
    已通过
    10
    上传者