
dp
文章平均质量分 95
Zimba_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
经典套路:一类字符串计数的DP问题
概述在各种比赛中经常会碰到这样一类问题:给出一个(或多个)短串,问你能构造出多少个不同的长度为n的长串,不包含(或包含)这些短串。这是一个常见的字符串计数问题,解决这类问题的思路是一致的。在这希望读者学会这篇博客后,碰到类似的问题(理解了解题的思想,再结合一点点想法)都能通过,或发现博客中不足以通过某题而产生新的衍生。附上KMP板子:无附上AC自动机板子:(我好像trie拼错成tire了,但是用了两年的板子懒得改了)#include<bits/stdc++.h>using原创 2021-07-07 16:56:19 · 530 阅读 · 0 评论 -
1D/1D动态规划学习总结
前言:自从发现1D/1D动态规划这个新的技能块后,每次看到这类题目都能口嗨成功,然后队友催我赶紧学。再者发现有好多优化方法,所以慢慢学,每天学一点,加上还要做一些奇奇怪怪的题目保持状态,也就差不多了。第0天(1D/1D动态规划):什么是1D/1D动态规划?1D/1D动态规划是指形如dpi=max{dpj+w(i,j)}dp_{i}=max\{ dp_{j}+w(i,j)\}dpi=max{dpj+w(i,j)}的动态规划,当然maxmaxmax也可以换成minminmin。据说长这样的dpdp原创 2020-12-07 20:25:06 · 1576 阅读 · 0 评论 -
[COCI] Vještica (子集dp)
题意:给定n(n≤16)n(n\leq 16)n(n≤16)个串。你可以把串内的字母任意排列,使得将这些串插入字典树后的结点最少。串总长不超过10610^{6}106.思路:只有161616位,考虑状压表示集合。用DP((10111)2)DP((10111)_{2})DP((10111)2)表示第1,3,4,51,3,4,51,3,4,5串被插入后的最小结点数。先考虑两个串插入字典树,贡献的结点数是两个串的结点数之和减去两个串的前缀。所以,我们考虑两个串的前缀要最长,就是每个字母的个数取mi原创 2020-10-08 20:21:09 · 188 阅读 · 0 评论 -
简单易懂的子集dp
前置知识:状压:用二进制(或n进制)代表的十进制数来表示状态,通过位操作进行状态调整。举个例子,房间内4盏灯的亮灭情况为0101,该状态存储下的十进制数为5。从右往左编号为0,1,2,3。打开第3盏灯即将原状态5变为5|(1<<3)。关于状压只做简单介绍。枚举二进制子集:二进制数为s,枚举其子集的含义是指,枚举所有x∈{x| x|s=s}。具体操作如下: fo...原创 2020-01-12 16:39:01 · 1306 阅读 · 0 评论