3625

3625

题目描述

 

Alice 和Bob 在玩游戏。

有一棵NN个节点的树,Alice 和Bob 轮流操作,Alice 先手。一开始树上所有节点都没有颜色,Alice 每次会选一个没有被染色的节点并把这个节点染成红色(不能不选),Bob 每次会选一个没有被染色的节点并把这个节点染成蓝色(不能不选)。当有人操作不了时,游戏就终止了。

Alice 的最终得分为红色连通块的个数,Bob 的最终的分为蓝色连通块的个数。设Alice 的得分为KAKA,Bob 的得分为KBKB,Alice 想让KA−KBKA−KB尽可能大,Bob 则想让KA−KBKA−KB尽可能小,假设两人都采取最优策略操作,那么KA−KBKA−KB会是多少。

这里指的连通块为一个点集SS,满足集合内点的颜色相同,且每个点都能只经过SS内的点走到SS内的其他点,而且如果将任意u(u∉S)u(u∉S)加入SS,那么上述性质将不能被满足。


solution

首先我们考虑点已经染好了色。

每次连边,如果连了两个颜色相同的点,就相当于给某个人-1

连了两个颜色不同的点,就相当于两个人都-1

那么我们记每个人选的点的入度,价值即为入度之差。

可以发现,从小到大取应是最优的

posted @   liankewei123456  阅读(528)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示