首页 > 其他分享 >SPOJ COT3 Combat on a tree

SPOJ COT3 Combat on a tree

时间:2023-05-04 22:55:32浏览次数:34  
标签:子树 COT3 第一步 所有 tree 异或 SPOJ SG mathrm

简要题意

给定一棵有根树,初始有黑点白点。两人交替操作,每次选择一个白点,将这个点到根路径上所有点染黑,选不了则输。求先手能否必胜;如果能,给出第一步可能的所有走法。

数据范围:\(1\le n\le 10^5\)。

题解

小清新题。难度不配黑题。

进行一次操作以后,这个点到根路径上所有点两侧的子树全部都变得彼此独立,只需要将 \(\mathrm{SG}\) 值异或起来即可。考虑求出所有子树的 \(\mathrm{SG}\) 值,则判定胜负和输出第一步都很容易。一个朴素的 \(n^2\) 做法是对于每个子树,枚举第一步的选择。但是这样不好优化。考虑利用子树内已经求出的信息。易得新的后续状态的 \(\mathrm{SG}\) 函数集合,是每个儿子的集合内元素异或上其他儿子的 \(\mathrm{SG}\) 值,求并,再加入所有儿子的 \(\mathrm{SG}\) 值得到。需要一种数据结构,支持全局异或,加入一个数,快速合并去重,快速求 \(\operatorname{mex}\)。01-Trie 即可。

标签:子树,COT3,第一步,所有,tree,异或,SPOJ,SG,mathrm
From: https://www.cnblogs.com/kyeecccccc/p/17372796.html

相关文章

  • POJ 3321 Apple Tree(树状数组)
    AppleTreeTimeLimit: 2000MS MemoryLimit: 65536KTotalSubmissions: 21635 Accepted: 6573DescriptionThereisanappletreeoutsideofkaka'shouse.Everyautumn,alotofappleswillgrowinthetree.Kakalikesappleverymuch,sohehasbeen......
  • Odoo14 Tree视图创建按钮后面增加按钮
    1.继承ListView.buttons,在其按钮后面增加我们自定义的按钮,通过widget的一些属性去判断按钮的显示<templatesid="list_import_shipping_button_create"xml:space="preserve"><tt-extend="ListView.buttons"><tt-jquery="div.o_list_buttons&......
  • 1159 Structure of a Binary Tree + 根据前序和中序构建二叉树+ 层序遍历模板复习
    题目链接:https://pintia.cn/problem-sets/994805342720868352/exam/problems/1478635126488367104唉,今天的bug出在了下面这条语句。if(tree[root_key].left*tree[root_key].right<0)full_tree=false;我写成了full_tree=!(tree[root_key].left*tree[root_key].rig......
  • AtCoder Regular Contest 125 F Tree Degree Subset Sum
    洛谷传送门AtCoder传送门首先将度数\(-1\)。设\(f_i\)为体积为\(i\)至多能用几个物品凑出来,\(g_i\)为至少。我们现在要证明一个东西:\(x\in[g_i,f_i]\),\((i,x)\)合法。首先若\((s,x)\)合法,那么必须满足\(s-x\in[-z,z-2]\),其中\(z=\sum\limits_{i=1}......
  • Codeforces 280C Game on Tree
    设\(p_i\)为\(i\)涂色或不涂色,\(1\)为涂,\(0\)为不涂,答案即为\(E[\sum_{i=1}^np_i]\)然后转化一下柿子:\(\sum_{i=1}^nE[p_i]\),这就很好求了,单独求每个点\(E[p_i]\)的值就行了考虑对于\(u\)点,\(p_u=1\),即能被涂需要满足其祖先都比其晚涂色假设现在有一个序列里面......
  • CF911F Tree Destruction
    题意:给你一棵\(n\)个结点组成的树,你需要对树进行\(n-1\)次操作,一次操作包含如下的步骤:选择两个叶子结点将这两个结点之间简单路径的长度加到答案中从树上删去两个叶子结点之一初始答案为\(0\),显然在\(n-1\)次操作之后树上只剩下一个结点。计算最大的答案,并构造一组......
  • odoo tree下直接编辑, 免跳转form
      <recordid="mypartner_tree_view"model="ir.ui.view"><fieldname="name">Mypartner清单</field><fieldname="model">mypartner</field><fieldname="arch&......
  • [ABC148F] Playing Tag on Tree
    2023-03-04题目题目传送门翻译翻译难度&重要性(1~10):5题目来源AtCoder题目算法最短路解题思路考虑到T想活得久,A想尽早追上T,所以我们就将问题转化为在树上找一条最长链,使得T能比A先到达这条链。所以我们就可以在树上跑两遍单源最短路,因为边权为\(1\),所以......
  • CF 1709E XOR Tree(树上启发式合并)
    题目链接:https://codeforces.com/contest/1709/problem/E解题思路:定义sum(x,y)为x→y路径上的点的异或和,dx 为x→root路径上的点的异或和。对于一个点权树,sum(x,y)=dx ^dy ^vallca(x,y)。考虑修改一个点,可以将它改为一个很大的2为底数的幂,则经过此点的所有的不合......
  • AtCoder Regular Contest 117 D Miracle Tree
    洛谷传送门AtCoder传送门第一步就没想到可以考虑化简限制。设所有点按\(E_i\)从小到大排序后顺序是\(p_1,p_2,...,p_n\)。发现只需满足\(E_{p_{i+1}}-E_{p_i}\ge\operatorname{dis}(p_i,p_{i+1})\)。证明是对于任意\(i<j<k\),若\(p_i,p_j\)和\(p_j,p_k\)均满......