链接:https://ac.nowcoder.com/acm/contest/11221/E
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
幽怨火,憎恨焰,变异蛮牛续执念。

给定一棵根为 11,且是黑点的有根树。

每个白点相邻所有的点都是黑点,每个黑点相邻所有的点都是白点。换句话说,你可以从根结点开始,按照深度对每个点黑白染色。

现在对于一条两个端点分别是 u,vu,v 的链,定义其长度为:包含的黑点个数 -− 包含的白点个数。

请你数一数 长度最大 的链的个数。
输入描述:
全文第一行是 T(1\le T\le10^5)T(1≤T≤10
5
),表示数据组数;

接下来 TT 组数据,先输入一行一个正整数表示树的大小 n(1\le n\le2\times10^5,\sum n\le3\times10^6)n(1≤n≤2×10
5
,∑n≤3×10
6
);

接下来输入 n-1n−1 行每行两个正整数 u,v(1\le u,v\le n)u,v(1≤u,v≤n) 表示树的一条边。
输出描述:
输出 TT 行,每行一个整数表示答案。
示例1
输入
复制
1
6
1 2
2 3
3 4
4 5
5 6
输出
复制
6
说明
合法的链分别是:{1},{3},{5},{1,2,3},{3,4,5},{1,2,3,4,5}{1},{3},{5},{1,2,3},{3,4,5},{1,2,3,4,5}。

思路 :

  • 显然这棵树第一层全黑,第二层全白,第三层全黑…因此,黑 - 白数量最多为1,要么就选一个黑点,要么就选起始皆为黑点,假设黑点个数为cnt,则答案为cnt+Ccnt2cnt + C^2_{cnt}cnt+Ccnt2​
  • 值得注意的是,最后输出公式中加法的两个部分都要先乘上1ll,否则会wa
  • 优化:每次清空边动态数组时,只要清理本次样例的范围
#include <iostream>
#include <vector>
using namespace std;const int N = 2e5 + 10;vector<int> e[N];
int cnt;void dfs(int u, int fa, int col)
{if (col) cnt ++ ;for (auto v : e[u])if (v != fa)dfs(v, u, col ^ 1);
}int main()
{int _; cin >> _;while (_ -- ){int n; scanf("%d", &n);cnt = 0;for (int i = 1; i <= n; i ++ ) e[i].clear();for (int i = 0, u ,v; i < n - 1 && scanf("%d%d", &u, &v); i ++ )e[u].push_back(v), e[v].push_back(u);dfs(1, 0, 1);printf("%lld\n", 1ll * cnt + 1ll * cnt * (cnt - 1) / 2);}
}

变异蛮牛 树,dfs,二分图染色 牛客白月赛44相关推荐

  1. 幽暗统领 树的重心 牛客白月赛44

    链接:https://ac.nowcoder.com/acm/contest/11221/F 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52 ...

  2. 绝命沙虫 精度,double,模拟 牛客白月赛44

    链接:https://ac.nowcoder.com/acm/contest/11221/C 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52 ...

  3. 顽皮恶魔 牛客白月赛44

    链接:https://ac.nowcoder.com/acm/contest/11221/B 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52 ...

  4. 深渊水妖 模拟,贪心 牛客白月赛44

    链接:https://ac.nowcoder.com/acm/contest/11221/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52 ...

  5. 牛客白月赛26【题解】

    https://ac.nowcoder.com/acm/contest/6013 目录 牛牛爱学习[二分] 牛牛爱数学[一元二次方程求根] 牛牛种花[树状数组] 失忆药水[思维] 牛牛走迷宫[bfs] ...

  6. 牛客白月赛27【题解】

    https://ac.nowcoder.com/acm/contest/6874#question 目录 巨木之森[树的直径] 乐团派对[贪心 / DP] 光玉小镇[状压DP TSP] 巅峰对决[线段 ...

  7. 牛客白月赛49【题解】

    https://ac.nowcoder.com/acm/contest/11226 目录 法[签到] 佛[暴力枚举] 圣[思维] 法[签到] #include<bits/stdc++.h> ...

  8. 牛客白月赛19【题解】

    https://ac.nowcoder.com/acm/contest/2272 目录 「水」滔天巨浪[双指针] 「木」迷雾森林[DP] 「土」秘法地震[前缀和] 「金」初心如金[思维] 「火」烈火燎 ...

  9. 牛客小白月赛28 E-会当凌绝顶,一览众山小 线段树+二分暴力模拟

    牛客小白月赛28 E-会当凌绝顶,一览众山小 线段树+二分暴力模拟 题意 思路 Code 传送门: https://ac.nowcoder.com/acm/contest/16081/E 题意 登山顺 ...

最新文章

  1. 零欧姆电阻在电路上的作用
  2. ObjectDataSource使用初步
  3. 利用jQuery实现的Ajax 验证用户名是否存在
  4. android 8.0 三星,这些三星手机竟到2019年才能升级安卓8.0:等到头发都白了
  5. Java 并发系列之十一:并发线程带来的风险
  6. 第21章 java线程(1)-线程初步
  7. 信息技术c语言试题,全国信息技术水平考试C语言考试试卷.doc
  8. 开发板上rmmod卸载驱动的时候,常见的错误总结
  9. Java杂项基础知识点总结
  10. Flink stream load 方式写入doris
  11. 微信小程序开发4——利用自定义组件实现页面内容切换功能
  12. 铁路 计算机系统维护,成都市计算机学校计算机系统维护就业前景
  13. S32DS中.ld(链接)文件学习
  14. html制作炸金花,微信小程序怎么制作炸金花?微信小程序制作炸金花的方法
  15. HBuilderX 安装教程
  16. 拨乱反正!关于LoRaWAN的7个常见误解
  17. 商品交易系统产品介绍
  18. 小李开着白色跑车去云南旅游(新手)
  19. PMP项目管理敏捷项目管理
  20. BIM模型文件下载——某历史博物馆Revit模型

热门文章

  1. 【面试福利篇】英文面试的相关资料
  2. 如何使用应用日志(Application Log)
  3. SAP ABAP SQL查询分析器
  4. LSMW、BDC、CATT 区别
  5. ABAP数字类型合法性检查函数NUMERIC_CHECK
  6. 抢红包的红包生成算法
  7. table control 光标定位控制
  8. 大商超的2020:转型、收紧、试新
  9. centos8更换yum源_基于yum进行linux系统升级--从Centos7升级到Centos8
  10. 对抗canary保护技术的几种方式