首页 > 其他分享 >CF1405D Tree Tag(树的直径/博弈)

CF1405D Tree Tag(树的直径/博弈)

时间:2022-11-02 21:25:23浏览次数:64  
标签:pre head int Tree CF1405D tot Next Tag linklen

#include <bits/stdc++.h>
#define N 300005
using namespace std;
int n, a, b, da, db;
int head[N], ver[2 * N], Next[2 * N], tot = 0;
int p1, p2, mxd = 0;
int dep[N];
int linklen = 0;
int disab;
void add(int x, int y) {
	ver[++tot] = y, Next[tot] = head[x], head[x] = tot;
}
void dfs1(int x, int pre, int d) {
	dep[x] = d;
	if(x == b) {
		disab = d - 1;
	}
	if(d > mxd) {
		mxd = d;
		p1 = x;
	}
	for(int i = head[x]; i; i = Next[i]) {
		int y = ver[i];
		if(y == pre) continue;
		dfs1(y, x, d + 1);
	}
}
void dfs2(int x, int pre, int d) {
	if(d > linklen) {
		linklen= d;
		p2 = x;

	}
	for(int i = head[x]; i; i = Next[i]) {
		int y = ver[i];
		if(y == pre) continue;
		dfs2(y, x, d + 1);
	}
}
void solve() {
	cin >> n >> a >> b >> da >> db;
	tot = 0;
	for(int i = 1; i <= n; i++) {
		head[i] = 0;
	}
	mxd = linklen = 0;
	for(int i = 2; i <= n; i++) {
		int u, v;
		cin >> u >> v;
		add(u, v);
		add(v, u);
	}
	dfs1(a, 0, 1);
	dfs2(p1, 0, 1);
	linklen--;//直径上边的数目
	if(2 * da >= linklen) {//Alice先跳回中心然后就可以直接跳到任何地方
		puts("Alice");
	} else if(disab <= da) {//Alice一步就可以到bob
		puts("Alice");
	} else if(db <= 2 * da) {//Alice可以把Bob逼近角落而Bob无法挣脱
		puts("Alice");
	} else {
		puts("Bob");
	}

}
int main() {
	int T = 1;
	cin >> T;
	while(T--) {
		solve();
	}
	return 0;
}

标签:pre,head,int,Tree,CF1405D,tot,Next,Tag,linklen
From: https://www.cnblogs.com/lipoicyclic/p/16852489.html

相关文章

  • C# 窗体传值,TreeView To TreeView
      usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.T......
  • JAVA++:HashMap无序?TreeMap有序?
    书上说HashMap是无序的,TreeMap是有序的(有序无序是针对key的),但是实际去敲的时候发现不是这样,有时HashMap是有序的,有时TreeMap是无序的。于是就做了以下测试来探究:......
  • 阿里TDM论文阅读《Learning Tree-based Deep Model for Recommender Systems》
    背景推荐本质上需要完成从全量商品库高效检索Topk相关商品,由于候选商品数量过于庞大,现在的推荐系统一般分为两个阶段:召回和排序。对于召回阶段,面临着从全量商品库里面,高效......
  • 11g Active Dataguard的Automatic Block Repair特性
    11g出来这么多年了,虽然早就知道这个特性,但一直也没有亲自测试一下,今天正好有业务需求,简单测试了下,记录之。1.在主库中创建测试用户和测试表(test.adg):createusertesti......
  • Instagram使用体验
    Instagram使用体验前言无意中知道了Instagram。于是决定了解一下。下面从Instagram的介绍、使用、感受三方面进行了解。文章目录​​Instagram使用体验​​​​前言​​​​......
  • TreeMap,HashMap,LinkedHashMap区别
    TreeMap,HashMap,LinkedHashMap之间的区别和TreeSet,HashSet,LinkedHashSet之间的区别相似。TreeMap:内部排序,内部使用了红黑树排序HashMap:无序。LinkedHashMap:顺序存取,内部......
  • 决策树Decision Tree
    1.决策树概念:是一种非参数的有监督学习方法,他能从一系列有特征和标签的数据中总结出决策规则,并用树状图来呈现这些规则,以解决分类和回归问题。思想:决策树基于特征对数据......
  • backstage 面向开发者门户框架再次简单试用
    很早以前我试用过backstage,同时写过简单的介绍,随着目前backstage越来越强大,而且进入了linux基金会,同时还是cncf孵化项目对于backstage需要重新深入学习研究下了,以下只......
  • Codeforces 1670 E. Hemose on the Tree
    题意给你个数p,n=2^p;有一棵树有n个节点,告诉你怎么连边;每个点有个权值,每条边也有个权值,权值需要自行分配,[1,2,3..n...2n-1],总共2n-1个权值;你需要选一个节点,使得他到所......
  • Tree 的
    二叉树 就是计划生育政策下,每个人只能最多生两个儿子的意思。 并且分为左子树和右子树。 二叉树又有二叉查找树,也就是二叉排序树。即,左节点都比自己小,右节点都比......