Description 如果一棵树的所有非叶节点都恰好有 \(n\) 个儿子,那么我们称它为严格 \(n\) 元树。如果该树中最底层的节点深度为 \(d\)(根的深度为 \(0\)),那么我们称它为一棵深度为 \(d\) 的严格 \(n\) 元树。例如,深度为2的严格2元树有三个,如下图: 给出 \ ...
分类:
其他好文 时间:
2021-06-28 19:06:37
阅读次数:
0
原题链接 考察:区间DP 处理方式略像涂色...本蒟蒻是没想出来怎么转移.... 思路: 实际就是暴力...本蒟蒻还想了怎么快速判断循环..... 对于枚举的区间[l,r],看是否是循环区间,如果不是要再看里面的子区间是否为循环区间,枚举子区间f[l][r] = min(f[l][k]+f[k+1] ...
分类:
其他好文 时间:
2021-04-07 11:08:21
阅读次数:
0
IV.[SCOI2003]字符串折叠 一眼区间DP。 设$f[i][j]\(表示:将区间\)[i,j]$内的所有东西压一起的最短长度。 显然,有两种方法: 1.在中间一刀劈开,然后拼一起。 2.找到它的循环节,然后把整个串压一起。 至于找循环节吗……枚举循环节长度,然后无脑哈希一下。 注意,你可能会 ...
分类:
其他好文 时间:
2021-03-31 12:02:22
阅读次数:
0
题目大意: 折叠的定义如下: 一个字符串可以看成它自身的折叠。记作S = S X(S)是X(X>1)个S连接在一起的串的折叠。记作X(S) = SSSS…S(X个S)。 如果A = A’, B = B’,则AB = A’B’ 例如,因为3(A) = AAA, 2(B) = BB,所以3(A)C2(B ...
分类:
其他好文 时间:
2020-07-19 18:03:43
阅读次数:
63
思路:DP 提交:$5$次 错因:$2$次高精写错(我太菜了),$2次$写错特判 题解: 设$f[i]$表示深度$\leq i$的严格$n$元树的数目,有 $$f[i]=pow(f[i 1],n)+1$$ 即一个点,对于每一个孩子深度都可以是$1$到$i 1$的严格$n$元树,或是仅仅一个点(作为根 ...
分类:
其他好文 时间:
2019-08-16 21:09:36
阅读次数:
74
题目描述 折叠的定义如下: 一个字符串可以看成它自身的折叠。记作S = S X(S)是X(X>1)个S连接在一起的串的折叠。记作X(S) = SSSS…S(X个S)。 如果A = A’, B = B’,则AB = A’B’ 例如,因为3(A) = AAA, 2(B) = BB,所以3(A)C2(B) ...
分类:
其他好文 时间:
2019-05-18 15:24:48
阅读次数:
108
link 其实一眼看到就能想到区间$dp$吧 设$dp(i,j)$表示从$i$到$j$的折叠次数最小,我们每次确定一个数$k$,若$i$~$k$能匹配$k+1$~$j$那么$dp(i,j)=dp(i,k)+2+s$,$s$为括号左面的数字的位数,$+2$是因为要算上括号,若不能则$dp(i,j)=d ...
分类:
其他好文 时间:
2018-10-30 14:47:34
阅读次数:
156
"传送门" Solution 区间DP,枚举断点,对于一个区间,枚举折叠长度,用hash暴力判断是否能折叠即可 Code cpp include include include include include define Re register define F(i,a,b) for(Re int ...
分类:
其他好文 时间:
2018-10-04 11:26:42
阅读次数:
199
又一道区间dp,和上一篇类似,但是比他简单,这个只有两种转移方法,不是很复杂。直接判断是否为重复的串就行。 题干: 代码: ...
分类:
其他好文 时间:
2018-09-29 23:51:59
阅读次数:
196
设f[i]为深度为i的n元树数目,s为f的前缀和 s[i]=s[i 1]^n+1,就是增加一个根,然后在下面挂n个子树,每个子树都有s[i 1]种 写个高精就行了,好久没写WA了好几次…… ...
分类:
其他好文 时间:
2018-09-24 00:29:43
阅读次数:
147