动态规划——数据结构辅助
文章平均质量分 74
无
迷蒙之雨
这个作者很懒,什么都没留下…
展开
-
CF1740H MEX Tree Manipulation
观察到这样的信息是可以合并的,因此我们用线段树维护一条重链的信息。有一棵不断加叶子的树,叶子的权值是0,其余节点的权值是其子节点的。的,因此可以用数组存储每个点轻子树的点权,方便求出。,设其轻儿子中最小的没有出现能过的自然数是。首先离线建树,把树做轻重链剖分。有一个小细节是一个点的权值是。我们可以用一个五元组。原创 2022-12-22 21:44:00 · 415 阅读 · 0 评论 -
[PKUWC2018]Minimax(整体DP+线段树合并+概率)
洛谷题目传送门题目说每一个权值的概率都不为0,所以每个权值都有可能取到考虑如下的dpdpdp:设fi,jf_{i,j}fi,j表示点iii取到jjj权值的概率,这里的权值可以离散化一下那么这个dpdpdp是怎么转移的?·如果这个点是叶子节点,那么只有一种取值是1,其余取值是0,·如果这个点只有一个儿子,那么整个dpdpdp数组都由那个儿子继承过来·如果这个点有两个儿子,设为x,yx,yx,y那么如果从左儿子转移则fi,j=fx,a×(pi×∑b=1a−1fy,b+(1−pi)×∑b=a原创 2021-12-29 10:17:16 · 366 阅读 · 0 评论 -
[HEOI2016/TJOI2016]序列(CDQ分治优化DP)
洛谷题目传送门解题思路题目和最长上升子序列比较像,我们考虑用dpdpdp来解决设fif_ifi表示以iii这个位置结束的最长序列的长度,MaxiMax_iMaxi表示iii这个位置最大的数,MiniMin_iMini表示iii这个位置最小的数,转移时枚举上一个选的元素jjj是哪个位置因为最多只会变一个数,所以对于一个转移点jjj:·如果是jjj的位置变化,那么必须满足它变的最大的数也是小于aia_iai的,也就是Maxj≤aiMax_j\leq a_iMaxj≤ai·如果是iii的位原创 2021-12-10 13:18:55 · 902 阅读 · 0 评论 -
SPOJ3734 PERIODNI(笛卡尔树+组合+DP)
SPOJ3734 PERIODNI洛谷题目传送门给定一个N列的表格,每列的高度各不相同,但底部对齐,然后向表格中填入K个相同的数,填写时要求不能有两个数在同一列,或同一行,下图中b是错误的填写,a是正确的填写,因为两个a虽然在同一行,但它们中间的表格断开。输出所有填写方案数对1 000 000 007的余数。解题思路这道题是加在笛卡尔树作业里的,那就是和笛卡尔树有关的先考虑一种简化情况如果是正方形,填n个数,那么第一行有n种,第二行有(n-1)种一共有n!n!n!种填法如果是矩形,长n,宽原创 2021-10-13 13:32:07 · 193 阅读 · 0 评论 -
P1552 [APIO2012]派遣(左偏树+树形DP)
洛谷题目传送门解题思路不会左偏树的可以看我的博客左偏树学习记录对于一个节点,他的L值是确定的,所以我们要最大化选的节点个数,因为上限也是确定的,所以我们只需要尽可能选C小的就可以了,然后把这个结点的所有子树的信息合并起来,在循环删除最大值,直到总和小于m,所以我们可以在每个节点维护一颗左偏树,存储大根堆,然后遍历树的时候自底向上合并左偏树就可以了#include<bits/stdc++.h>using namespace std;typedef long long LL;const原创 2021-07-31 18:56:54 · 132 阅读 · 0 评论 -
[FJOI2016]所有公共子序列问题(DP+序列自动机+高精度)
洛谷题目传送门题目大意:求两个字符串的公共子序列个数解题思路知识点:序列自动机(Sequential automata)据wjn大佬说,这是你学过的最简单的自动机算法不得不说,这个自动机确实不难,不过相关它的题可是把人写懵了它的核心就是一个Next数组Next[x][c]表示在当前字符串的第x位置往后的第一个字符c的位置构造思路就是从后往前构造void build(int p){ for(int i=n-1;i>=0;i--) { for(int c=0;c<=5原创 2021-07-28 17:00:31 · 129 阅读 · 0 评论 -
[APIO2018] Duathlon 铁人两项(圆方树+树形DP)
[APIO2018] Duathlon 铁人两项洛谷题目传送门如果没学过圆方树的可以进入我的博客 圆方树学习记录及例题解题思路首先这是一道无向图计数问题,因此我们考虑在圆方树上计算建出圆方树后,考虑如果一条路径的起点和终点已经确定,那么中点有几种选择呢?首先,这条路径上的圆点肯定可以作为中点,其次路径上的方点连的圆点也可以是中点(因为方点代表一个点双连通分量,它可以联通)因此对于一个路径,我们给每个点付一个权值,如果是圆点权值是1,就代表这一个点,方点的权值就是它对应的点双大小减二,这是因为它原创 2021-07-12 07:12:42 · 295 阅读 · 0 评论 -
CF1408G Clusterization Counting(计数)(动态规划+Kruskal重构树)
洛谷题目传送门题目描述There arencomputers in the company network. They are numbered from1ton.For each pair of two computers 1≤i<j≤nyou know the value ai,j: the difficulty of sending data between computersiandj. All values ai,jfor i<jare di...原创 2021-07-09 21:05:15 · 533 阅读 · 0 评论 -
2021/2/17 考试总结
T1音量调节题目描述一个吉他手准备参加一场演出。他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都要改变一次音量。在演出开始之前,他已经做好了一个列表,里面写着在每首歌开始之前他想要改变的音量是多少。每一次改变音量,他可以选择调高也可以调低。音量用一个整数描述。输入文件中给定整数beginLevel,代表吉他刚开始的音量,以及整数maxLevel,代表吉他的最大音量。音量不能小于0也不能大于maxLevel。输入文件中还给定了n个整数c1,c2,…,cn,表示在第i首歌开始之...原创 2021-02-17 14:38:29 · 410 阅读 · 2 评论