06 2020 档案

摘要:\(\color{Red}{Link}\) \(\text{Solution:}\) 还是$\text$ 根据\(\color{Blue}{Link}\)我们可以得到一个普适性较强的做法。 而这题就是多组数据。改下数据即可。 但是字符串的输入要绝对注意,每一次的清空都不能落下。 #include<b 阅读全文
posted @ 2020-06-26 14:14 Refined_heart 阅读(136) 评论(0) 推荐(0) 编辑
摘要:$\text$我来啦我来啦 \(\text{Solution:}\) 题目要求求好几个串串的$\text$ 由于串串的数量并不多,所以我们把它们塞到一个$\text$里面,中间加上分隔符号。 那么答案就是最深的且它的子树中具有所有分节符的非叶子节点。 至于分节符数量和种类,用前缀和即可。 介于$\t 阅读全文
posted @ 2020-06-26 13:41 Refined_heart 阅读(293) 评论(1) 推荐(0) 编辑
摘要:\(\color{purple}{Link}\) \(\text{Solution:}\) 题目要求找到两个串的最长公共子串。\(LCP\) 我们将两个串中间和末尾插入终止符,并弄到一棵后缀树上去。 然后我们发现,对于一个叶子节点,它属于哪个子串,我们只需要找到它的父边上第一个出现的终止符属于哪个边 阅读全文
posted @ 2020-06-26 10:50 Refined_heart 阅读(141) 评论(1) 推荐(0) 编辑
摘要:#include<bits/stdc++.h> using namespace std; const int MAXN=1e6+10; typedef long long ll; char s[MAXN]; int n,siz[MAXN<<1]; ll ans=0; const int inf=1e 阅读全文
posted @ 2020-06-25 09:19 Refined_heart 阅读(106) 评论(0) 推荐(0) 编辑
摘要:$\text$序列,是树与序列的一种双射。 ##构建过程: 每次找到一个编号最小的叶子节点$Leaf$,将它删掉,并将它所连接的点的度数$-1$,且加入$\text$序列。 重复上述步骤,直到只剩下两个点。 ##实现: 考虑如何实现。 最朴素的显然每次暴力找,复杂度$O(n^2).$显然不够优秀。 阅读全文
posted @ 2020-06-21 17:21 Refined_heart 阅读(259) 评论(0) 推荐(0) 编辑
摘要:\(\color{purple}{Link}\) \(\text{Solution:}\) 这是一道构造题。 题目要求恰好有$n$个点的四周全都是灰色点,所以直接输正方形是不行了。 考虑$k=1:$则输出一个十字,且这个十字的左上角和右下角也涂色即可。 当$k=2$时,则在$1$的基础上把右上角三个 阅读全文
posted @ 2020-06-20 17:42 Refined_heart 阅读(168) 评论(0) 推荐(0) 编辑
摘要:\(Link\) \(\text{Solution:}\) 把奶牛的忍耐度转化为线段,则题目转化为选择一些点使得覆盖的线段尽可能多。一个点只能覆盖一条线段。 考虑将点按照位置排序,线段按照右端点排序。排序后显然线段的最低耐受程度是递增的,那么我们显然用位置最靠左的点最优,因为以后它一定覆盖不了其它的 阅读全文
posted @ 2020-06-16 12:34 Refined_heart 阅读(128) 评论(0) 推荐(0) 编辑
摘要:\(\color{blue}{Link}\) \(\text{Solution:}\) 首先,显然的策略是把一定不能翻倍的先加进来。继续考虑下一步操作。 考虑$x,y$两个可以翻倍的物品,且$a_x>a_y.$ 那么,设原来答案为$sum$,则有下面情况: 先选择$x:$ 若$a_x<sum$则翻倍 阅读全文
posted @ 2020-06-15 19:39 Refined_heart 阅读(167) 评论(0) 推荐(0) 编辑
摘要:\(\color{red}{Link}\) \(\color{blue}{\text{Solution:}}\) 题目要求构造一个最短的序列,使得异或和为$u$,数列和为$v$. 那么,因为是异或,所以最终序列的$u$对应的二进制位一定出现了奇数次,其他一定是偶数次。 显然$u,v$奇偶性不同或是$ 阅读全文
posted @ 2020-06-13 10:08 Refined_heart 阅读(133) 评论(0) 推荐(0) 编辑
摘要:\(\color{purple}{Link}\) \(\text{Solution:}\) 考虑区间$[l,r]\(的最优解。显然它可以由\)[l+1,r]\(或\)[l,r-1]$转移而来。至此出现区间$dp$模型。 因为这个是求双方最优解,显然对于一段区间$[l,r]$,如果对手选择最优解,那么 阅读全文
posted @ 2020-06-11 19:59 Refined_heart 阅读(148) 评论(0) 推荐(0) 编辑
摘要:\(\color{purple}{Link}\) \(\text{Solution:}\) 这个题就是给$Nim$游戏做了一个限制。 考虑一下$\text$函数:给定的局面下对应的$SG$函数值,若$=0$则必败。 又有:许多子游戏组成的一个游戏的$SG=\text_^n SG_i.$ 那么对于这个 阅读全文
posted @ 2020-06-10 21:30 Refined_heart 阅读(155) 评论(0) 推荐(0) 编辑
摘要:Link \(\text{Solution:}\) 由于有两种操作,不太好搞。 观察到,如果不考虑合并,显然总石子数为奇数则先手必胜,否则必败。 对于一个局面,显然我们最多操作次数是$(\sum a_i)+n-1$ 定义$b=n-1+\sum a_i$,则如果不存在石子数为$1$的堆,同样有$b$为 阅读全文
posted @ 2020-06-10 19:52 Refined_heart 阅读(270) 评论(0) 推荐(0) 编辑
摘要:Link \(\text{Solution:}\) 菜鸡自己想出来了状态设计,但是没有实现出来……菜死了 设$dp[i][j]$表示该选第$i$个,最多选$j$个的最优解。注意这里的定义仅仅是最优解,而不是先手最优。 那么,对于每一个$dp[i][j]$都要由下一步的$dp[i+x][x+x]$转移 阅读全文
posted @ 2020-06-07 21:32 Refined_heart 阅读(143) 评论(0) 推荐(0) 编辑
摘要:Link \(\text{Solution:}\) 回顾一下$Nim$游戏那个优美结论的$\text$ 将所有石子数量异或起来,若和为$0$则必败,否则必胜。(先手) 那分以下情况考虑: 首先是全$0:$此时必败,显然异或和为$0$. 然后是异或和不为$0$的状态:那我们必定可以找到一个$a_i$, 阅读全文
posted @ 2020-06-07 09:11 Refined_heart 阅读(207) 评论(0) 推荐(0) 编辑
摘要:Link \(\text{Solution:}\) 讲实话这题有点烦,不知道为啥改了下$\text$就过了……原版本$dfs$好像没啥错啊…… 其实对于子树问题,我们求出原来树的$dfs$序列,则可以将它转化为一个序列问题。注意题目中说的是有根树,以$1$为根。 那么,我们一遍$dfs$求出序列后, 阅读全文
posted @ 2020-06-04 22:24 Refined_heart 阅读(137) 评论(0) 推荐(0) 编辑