Codeforces Round 973 (Div. 2) F1. Game in Tree (Easy Version)(思维题 博弈)

题目

思路来源

乱搞ac

题解

两个人的策略是一样的,把1到u的路径标记,

如果能走旁边的链(也就是当前点,刨去标记链以外的子树中最长的链),

使得对面走剩余的连通块无法比你大,就走旁边的链,并宣告获胜

否则沿着标记链,朝对面的方向走一步

维护实际是一个区间最值,可以用set或者st表

代码

#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<vector>
#include<map>
#include<set>
using namespace std;
#define rep(i,a,b) for(int i=(a);i<=(b);++i)
#define per(i,a,b) for(int i=(a);i>=(b);--i)
typedef long long ll;
typedef double db;
typedef pair<int,int> P;
#define fi first
#define se second
#define pb push_back
#define dbg(x) cerr<<(#x)<<":"<<x<<" ";
#define dbg2(x) cerr<<(#x)<<":"<<x<<endl;
#define SZ(a) (int)(a.size())
#define sci(a) scanf("%d",&(a))
#define pt(a) printf("%d",a);
#define pte(a) printf("%d\n",a)
#define ptlle(a) printf("%lld\n",a)
#define debug(...) fprintf(stderr, __VA_ARGS__)
const int N=2e5+10;
int t,n,u,v,f[N],g[N],to;
vector<int>e[N],tmp;
set<P>my,your;
bool is[N];
void dfs(int u,int fa){f[u]=0;for(auto &v:e[u]){if(v==fa)continue;dfs(v,u);if(is[v])is[u]=1;else f[u]=max(f[u],f[v]+1);}if(u==1 || u==to)is[u]=1;if(is[u])tmp.pb(u);
}
int main(){sci(t);while(t--){sci(n);rep(i,1,n)e[i].clear(),is[i]=0;rep(i,2,n){sci(u),sci(v);e[u].pb(v);e[v].pb(u);}sci(to);sci(to);tmp.clear();dfs(1,0);rep(i,1,n)g[i]=f[i];tmp.clear();dfs(to,0);my.clear();your.clear();int cm=0,cy=0;for(auto &v:tmp){g[v]+=cm;cm++;if(v==to)break;my.insert(P(g[v],v));}reverse(tmp.begin(),tmp.end());for(auto &v:tmp){f[v]+=cy;cy++;if(v==1)break;your.insert(P(f[v],v));}reverse(tmp.begin(),tmp.end());int op=0,l=0,r=SZ(tmp)-1,nm=0,ny=0;while(SZ(my) || SZ(your)){if(op==0 && !SZ(my))break;if(op==1 && !SZ(your))break;if(op==0){int p=tmp[l],yy=SZ(your)==0?0:(*your.rbegin()).fi;if(g[p]>max(ny,yy)){nm=g[p];break;}if(l+1<r){my.erase(P(g[p],p));p=tmp[++l];your.erase(P(f[p],p));nm=l;}else{nm=g[p];ny=max(ny,yy);break;}}else{int p=tmp[r],mm=SZ(my)==0?0:(*my.rbegin()).fi;if(f[p]>=max(nm,mm)){ny=f[p];break;}if(l+1<r){your.erase(P(f[p],p));p=tmp[--r];my.erase(P(g[p],p));ny=SZ(tmp)-1-r;}else{ny=f[p];nm=max(nm,mm);break;}}op^=1;}puts(nm>ny?"Alice":"Bob");}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/146308.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机网络】网络层协议解析

网络层的两种服务IPv4分类编址划分子网无分类地址 IPv4地址应用IP数据报的发送和转发过程主机发送IP数据报路由器转发IP数据报 IPv4数据报首部格式ICMP网际控制报文协议虚拟专用网VPN与网络地址转换NAT 网络层主要任务是实现网络互连&#xff0c;进而实现数据包在各网络之间的传…

充电桩项目:前端实现

上次基于VueElement plus实现了充电桩项目后台管理系统的基本架子。 后端管理 员工管理 这次&#xff0c;又把用户端的基本架子搭建完毕&#xff1a;VueVant 首页 个人中心 充值 选择充值方式 优惠券中心 已过期优惠券 用户登录 用户注册 慢慢项目就有点样子了&#xff0c;代码…

远程桌面连接工具Microsoft Remote Desktop Beta for Mac

Microsoft Remote Desktop Beta for Mac 是一款功能强大的远程桌面连接工具&#xff0c;具有以下功能特点&#xff1a; 软件下载地址 跨平台连接&#xff1a; 允许 Mac 用户轻松连接到运行 Windows 操作系统的计算机&#xff0c;打破了操作系统的界限&#xff0c;无论这些 Wi…

Shiro-550—漏洞分析(CVE-2016-4437)

文章目录 漏洞原理源码分析加密过程解密过程 漏洞复现 漏洞原理 Shiro-550(CVE-2016-4437)反序列化漏洞 在调试cookie加密过程的时候发现开发者将AES用来加密的密钥硬编码了&#xff0c;并且所以导致我们拿到密钥后可以精心构造恶意payload替换cookie&#xff0c;然后让后台最…

基于无人机影像的可见光单木分割数据集-json格式

基于无人机影像的可见光单木分割数据集&#xff0c;共1700张影像&#xff0c;数据集大小3.6GB&#xff0c;分割标注采用标准json格式。 该数据集是一个专门用于基于无人机可见光影像进行单木分割的数据集&#xff0c;旨在帮助研究人员和开发者训练和评估基于深度学习的图像分割…

EndNoteX9快捷插入引用文献的教程以及出现的一些问题的解决方法(一)

使用EndNote向Word文档中插入引用文献时报错如图1所示&#xff1a; 解决方法为&#xff1a; 采用管理员身份运行Word与EndNote软件 当电脑中安装好Word与EndNote两款软件之后如何在Word中快速插入引用文献 &#xff08;一&#xff09;直接打开Word如图2&#xff0c;3&#x…

VisionPro - 基础 - 00 模板匹配技术和在VP中的使用 - PMAlign - PatMax - (3)

前言&#xff1a; 针对PatMax 的高级应用和原理&#xff0c;在这一节继续进行说明&#xff1a;这一节主要考虑的是PatMax模板匹配的原理&#xff1a; How PatMax Finds Patterns in an Image PatMax 模板匹配原理 1 Run-time Space When you search for a PatMax pattern in …

生信初学者教程(五):R语言基础

文章目录 数据类型整型逻辑型字符型日期型数值型复杂数数据结构向量矩阵数组列表因子数据框ts特殊值缺失值 (NA)无穷大 (Inf)非数字 (NaN)安装R包学习材料R语言是一种用于统计计算和图形展示的编程语言和软件环境,广泛应用于数据分析、统计建模和数据可视化。1991年:R语言的最…

DOCKER 数据库管理软件自己开发--———未来之窗行业应用跨平台架构

- 数据异地容灾服务--未来之窗智慧数据服务 DATA REMOTE DISASTER RECOVERY SERVICE -CyberWin Future Docker-数据查看 CyberWin DATA Viewer 1.docker 样式 mysqli://root:密码172.17.0.2:端口/数据库 阿雪技术观 拥抱开源与共享&#xff0c;见证科技进步奇迹&#xff0c;…

25届计算机专业毕设选题推荐-基于python+Django协调过滤的新闻推荐系统

&#x1f496;&#x1f525;作者主页&#xff1a;毕设木哥 精彩专栏推荐订阅&#xff1a;在 下方专栏&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; 实战项目 文章目录 实战项目 一、基于协调过滤的新闻推荐系统…

MySQL的登陆错误:ERROR 1049 (42000): Unknown database ‘root‘

MySQL的登陆错误&#xff1a;ERROR 1049 (42000): Unknown database ‘root’ 安装MySQL的时候&#xff0c;到网上查的命令行登陆MySQL的方法都是mysql -u root -p password mysql -r root -p 123456但是奇怪的是这条命令我输进去死活都不对&#xff0c;它都会要求再输入一遍…

how can I train a OpenAI fine tuned model with more prompts

题意&#xff1a;我如何使用更多提示来训练一个 OpenAI 微调模型&#xff1f; 问题背景&#xff1a; I fine-tuned OpenAI model with some prompts following this documentation it succeeded and created a new model in the playground. How I can retrain (fine-tune) th…

如何通过蜂巢(容器安全)管理内部部署数据安全产品与云数据安全产品?

本文将探讨内部部署和云数据安全产品之间的主要区别。在思考这个问题之前&#xff0c;首先了解内部部署和云数据安全产品之间的主要区别。 内部部署数据安全产品意味着管理控制台位于企业客户的内部部署&#xff0c;而德迅云安全则在云中托管云数据安全产品。德迅云安全供应商通…

灵当CRM系统index.php存在SQL注入漏洞

文章目录 免责申明漏洞描述搜索语法漏洞复现nuclei修复建议 免责申明 本文章仅供学习与交流&#xff0c;请勿用于非法用途&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任 漏洞描述 灵当CRM系统是一款功能全面、易于使用的客户关系管理&#xff08;C…

Vue 修饰符 | 指令 区别

Vue 修饰符 | 指令 区别 在Vue.js这个前端框架中&#xff0c;修饰符&#xff08;modifiers&#xff09;和指令&#xff08;directives&#xff09;是两个非常重要的概念。这里我们深度讨论下他们区别。 文章目录 Vue 修饰符 | 指令 区别一、什么是修饰符修饰符案例常见修饰符列…

基于深度学习的花卉智能分类识别系统

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 传统的花卉分类方法通常依赖于专家的知识和经验&#xff0c;这种方法不仅耗时耗力&#xff0c;而且容易受到主观因素的影响。本系统利用 TensorFlow、Keras 等深度学习框架构建卷积神经网络&#…

4、论文阅读:基于深度学习和成像模型的水下图像增强

基于深度学习和成像模型的水下图像增强 前言介绍物理成像模型光学成像原理数学公式深度学习方法Backscatter Estimation Module(反向散射估计模块)Direct-transmission Estimation Module(直接传输估计模块)训练方法前言 现在的主要挑战是水下机器人捕获的图像颜色失真。水…

nacos启动报错 load derby-schema.sql error

nacos 今天在使用nacos时&#xff0c;启动时一直报错&#xff0c;错误日志如下&#xff1a; 2024-09-16 08:27:57 Caused by: java.lang.RuntimeException: com.alibaba.nacos.api.exception.runtime.NacosRuntimeException: errCode: 500, errMsg: load derby-schema.sql err…

基于MindSpore实现Transformer机器翻译(下)

因本文内容较长&#xff0c;故分为上下两部分。上部分可点击以下链接查看 基于MindSpore实现Transformer机器翻译&#xff08;上&#xff09; 编码器&#xff08;Encoder&#xff09; Transformer的Encoder负责处理输入的源序列&#xff0c;并将输入信息整合为一系列的上下文…

分布式消息中间件kafka

文章目录 什么是kafka?整体架构 kafka核心概念1. 生产者 (Producer)2. 消费者 (Consumer)3. 主题 (Topic)4. 分区 (Partition)5. 经纪人 (Broker)6. 复制 (Replication)7. 消费者组 (Consumer Group)8. 日志段 (Log Segment) 主要功能1. 高吞吐量2. 可靠的消息传递3. 发布/订阅…