• [每日一题]:Wannafly挑战赛1 -- Treepath


    题目:

    考察点:

    树上DFS、long long、思维
    

    侃侃:

    之前做过一道类似的题目,所以想到应该往哪个方向去想。
    

    Code:

    #include <vector>
    #include <cstdio>
    #include <string>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    
    typedef long long LL;
    const int maxn = 1e5 + 10;
    
    vector<int>G[maxn];
    
    int deep[maxn],n;
    
    int u,v;
    
    void DFS(int u,int fa) {
    	for(int i = 0; i < G[u].size(); i ++) {
    		int v = G[u][i];
    		if(v != fa) {
    			deep[v] = deep[u] + 1;
    			DFS(v,u); 
    		}
    	}
    	return ;
    }
    
    int main(void) {
    	scanf("%d",&n);
    	for(int i = 1; i < n; i ++) {
    		scanf("%d%d",&u,&v);
    		G[u].push_back(v);
    		G[v].push_back(u);
    	}
    	DFS(1,-1);
    	LL ne = 0,pos = 0;
    	LL res = 0;
    	for(int i = 2; i <= n; i ++) {
    		if(deep[i] & 1) ne ++;
    		else {
    			pos ++;
    			res ++;
    		}
    	}
    	res += (ne * (ne - 1)) / 2 + (pos * (pos - 1)) / 2;
    	printf("%lld
    ",res);
    	return 0;
    }
    

    后记:

    哈哈,虽然跟之前做过的一道题类似,不过自己写出来AC还是比较开心的,听说这道题是树形DP
    的简单题,菜菜的我见到 DP 就 凉凉,先好好打好基础,加油!
  • 相关阅读:
    树莓派无线中继的实现
    最近宿舍使用树莓派心得一二
    ARM 编译 phddns
    FIR on Hadoop using hadoop-streaming
    转--linux awk
    java 多线程总结
    现有的Saliency计算模型的几个常见问题及回答 (转)
    Datastage 各种控件使用指南
    2014年军训总结
    分页查询
  • 原文地址:https://www.cnblogs.com/prjruckyone/p/12698166.html
Copyright © 2020-2023  润新知