zoukankan      html  css  js  c++  java
  • NowCoder--牛客练习赛30 C_小K的疑惑

    题目链接 :牛客练习赛30 C_小K的疑惑

    i j k 可以相同 而且 距离%2 只有 0 1两种情况 我们考虑 因为要 d(i j)=d(i k)=d(j k) 所以我们只能找 要么三个点 任意两个点之间的距离都是 1  要么都是 0

    所以我们先吧每个点到根节点的距离表示出来 找到有 x个 距离为1 y个距离为0 的点    当 选择距离是1 的时候 我们假设任选一个数 首先确定了 i 这个值  j 可以选x个数  k也可以选x个数 (因为包含了他自己本身的距离为 0) 然后又有 x 个数 所以 当选择 距离是1 的时候  答案是x^3         0 的情况同理

    #include<bits/stdc++.h>
    using namespace std;
    #define maxn 10010
    #define pii pair<int,int>
    int dis[maxn];
    vector<pii>q[maxn];
    void dfs(int u,int fa,int z){
     dis[u]=z;
     for(int j=0;j<q[u].size();j++){
         int v=q[u][j].first;
         int va=q[u][j].second;
         if(v!=fa){
             dfs(v,u,va+z);
         }
     }
    }
    int main(){
       int n;
       cin>>n;
       memset(dis,0,sizeof(dis));
       for(int j=0;j<n-1;j++){
          int x,y,z;
          cin>>x>>y>>z;
          q[x].push_back(pii(y,z));
          q[y].push_back(pii(x,z));
       }
       dfs(1,0,0);
       int x=0,y=0;
       for(int j=1;j<=n;j++){
          if(dis[j]%2) x++;
          else y++;
       }
       //cout<<x<<" "<<y<<endl;
       long long ans=1LL*x*x*x+1LL*y*y*y;
       cout<<ans<<endl;
    
       return 0;
    }
  • 相关阅读:
    使用RF(robotframework)要安装哪些库
    MYSQL题目练习专用
    MySQL字段拼接
    WPF样式
    WPF数据模板
    WPF控件模板
    WPF布局
    面向对象程序设计原则
    设计模式之策略模式
    设计模式之简单工厂模式
  • 原文地址:https://www.cnblogs.com/Dvelpro/p/9900158.html
Copyright © 2011-2022 走看看