SPOJ11414 COT3 博弈论 + Trie树合并】的更多相关文章

考虑对于每个子树从下往上依次考虑 对于叶子节点而言,如果可以染色,那么其\(sg\)值为\(1\),否则为\(0\) 考虑往上合并 如果选择了\(x\),那么后继状态就是其所有子树 如果选了其他子树中的一点,那么后继状态的构成如图所示 也就是,到当前根为止的所有其他子树的\(sg\)值异或上本身 那么,我们可以考虑维护一个数据结构,每次往上的时候,对于一棵子树内的点,异或上其他子树的\(sg\)值 至于查\(sg\)值,可以用一个支持查\(mex\)的东西 还需要合并 \(Trie\)树是一个不…
D. Acyclic Organic Compounds   You are given a tree T with n vertices (numbered 1 through n) and a letter in each vertex. The tree is rooted at vertex 1. Let's look at the subtree Tv of some vertex v. It is possible to read a string along each simple…
传送门 第一次接触到Boruvka求最小生成树 它的原版本是:初始每一个点构成一个连通块,每一次找到每一个连通块到其他的连通块权值最短的边,然后合并这两个连通块.因为每一次连通块个数至少减半,所以复杂度是\(O((n+m)logn)\)的 虽然它的原版本用途不多,但是思想可以涵盖很多其他题目,比如这道题 可以想到一个做法:将所有权值插入一个\(Trie\)里,在每一个叶子节点维护到达这个节点的数的编号.像上面那样维护若干连通块,每一次计算权值最小的边时,将当前连通块中所有权值从Trie中删去,然…
Query on A Tree Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 132768/132768 K (Java/Others) Problem Description Monkey A lives on a tree, he always plays on this tree. One day, monkey A learned about one of the bit-operations, xor. He was…
题目描述 $pure$和$dirty$决定玩$T$局游戏.对于每一局游戏,有$n$个字符串,并且每一局游戏由$K$轮组成.具体规则如下:在每一轮游戏中,最开始有一个空串,两者轮流向串的末尾添加一个字符,并且需要保证该串为$n$个字符串中任意一个串的前缀,不能操作的人输掉这一轮,并且在下一轮游戏中由该轮输掉的人先手.另外为了遵循女士优先的原则,在每一局游戏的第一轮均由$pure$先手.玩家的目标是获得整局游戏的胜利,一局游戏的胜利条件是:对手输掉最后一轮游戏.我们可以假定$pure$和$dirty…
前言 没脑子选手发现自己什么都不会 ... \(\text{More and more vegetables, What should I do?}\) 正文 Trie 树简介 大概是人类的话都知道吧,所以就不讲了 QWQ Trie 树合并 定义:就是把两个 \(\text{Trie}\) 树进行合并的操作,并且合并维护的信息. 我们定义 int merge(int a, int b) 就是进行合并操作的函数. \(a\) 和 \(b\) 分别是两个 \(\text{Trie}\) 树上的节点,…
题目链接:http://www.spoj.com/problems/COT3/ Alice and Bob are playing a game on a tree of n nodes.Each node is either black or white initially. They take turns to do the following operation:Choose a white node v from the current tree;Color all white node…
题目链接 \(Description\) 给定一棵\(n\)个点的树,每个点是黑色或白色.两个人轮流操作,每次可以选一个白色的点,将它到根节点路径上的所有点染黑.不能操作的人输,求先手是否能赢.如果能,输出第一步选择哪些节点能赢. \(n\leq10^5\). \(Solution\) Orz huzecong. 对于叶子节点,如果能染色,\(SG(x)=1\),否则\(=0\). 考虑从下往上算每棵子树的\(SG\)值.设\(SG(x)\)表示\(x\)子树的\(SG\)值,\(g(x)\)表…
题目:https://loj.ac/problem/2291 想了线段树合并的做法.就是用线段树维护 trie 的每个点在各种时间的操作. 然后线段树合并一番,线段树维护前缀最大值,就是维护最大子段和的套路,记录区间和.前缀 max .查询的时候,因为当前区间只记录了自己区间内部的前缀 max 值,所以要加一个 pr 表示该区间前面的区间和. 空间可能爆? RE 就没管.后来发现是 go[ ][ ] 开成 N 而非 M 了.这个做法还是可过的. 注意强制在线的 ans 是带绝对值的.注意 mx…
Peterson loves to learn new languages, but his favorite hobby is making new ones. Language is a set of words, and word is a sequence of lowercase Latin letters. Peterson makes new language every morning. It is difficult task to store the whole langua…