变异蛮牛 树,dfs,二分图染色 牛客白月赛44
链接: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相关推荐
- 幽暗统领 树的重心 牛客白月赛44
链接:https://ac.nowcoder.com/acm/contest/11221/F 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52 ...
- 绝命沙虫 精度,double,模拟 牛客白月赛44
链接:https://ac.nowcoder.com/acm/contest/11221/C 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52 ...
- 顽皮恶魔 牛客白月赛44
链接:https://ac.nowcoder.com/acm/contest/11221/B 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52 ...
- 深渊水妖 模拟,贪心 牛客白月赛44
链接:https://ac.nowcoder.com/acm/contest/11221/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52 ...
- 牛客白月赛26【题解】
https://ac.nowcoder.com/acm/contest/6013 目录 牛牛爱学习[二分] 牛牛爱数学[一元二次方程求根] 牛牛种花[树状数组] 失忆药水[思维] 牛牛走迷宫[bfs] ...
- 牛客白月赛27【题解】
https://ac.nowcoder.com/acm/contest/6874#question 目录 巨木之森[树的直径] 乐团派对[贪心 / DP] 光玉小镇[状压DP TSP] 巅峰对决[线段 ...
- 牛客白月赛49【题解】
https://ac.nowcoder.com/acm/contest/11226 目录 法[签到] 佛[暴力枚举] 圣[思维] 法[签到] #include<bits/stdc++.h> ...
- 牛客白月赛19【题解】
https://ac.nowcoder.com/acm/contest/2272 目录 「水」滔天巨浪[双指针] 「木」迷雾森林[DP] 「土」秘法地震[前缀和] 「金」初心如金[思维] 「火」烈火燎 ...
- 牛客小白月赛28 E-会当凌绝顶,一览众山小 线段树+二分暴力模拟
牛客小白月赛28 E-会当凌绝顶,一览众山小 线段树+二分暴力模拟 题意 思路 Code 传送门: https://ac.nowcoder.com/acm/contest/16081/E 题意 登山顺 ...
最新文章
- 零欧姆电阻在电路上的作用
- ObjectDataSource使用初步
- 利用jQuery实现的Ajax 验证用户名是否存在
- android 8.0 三星,这些三星手机竟到2019年才能升级安卓8.0:等到头发都白了
- Java 并发系列之十一:并发线程带来的风险
- 第21章 java线程(1)-线程初步
- 信息技术c语言试题,全国信息技术水平考试C语言考试试卷.doc
- 开发板上rmmod卸载驱动的时候,常见的错误总结
- Java杂项基础知识点总结
- Flink stream load 方式写入doris
- 微信小程序开发4——利用自定义组件实现页面内容切换功能
- 铁路 计算机系统维护,成都市计算机学校计算机系统维护就业前景
- S32DS中.ld(链接)文件学习
- html制作炸金花,微信小程序怎么制作炸金花?微信小程序制作炸金花的方法
- HBuilderX 安装教程
- 拨乱反正!关于LoRaWAN的7个常见误解
- 商品交易系统产品介绍
- 小李开着白色跑车去云南旅游(新手)
- PMP项目管理敏捷项目管理
- BIM模型文件下载——某历史博物馆Revit模型