DP Record
从 2024/5/4 往后开始记录捏。
T1.
给你一棵树,定义一个集合的权值为 \(\dfrac{\sum_{x\in S}V_x}{\sum_{x\in S}C_x}\)。若一个点 \(\in S\),则其父亲也必须 \(\in S\) 并且 \(|S| = k\)。求满足条件的所有集合的最大价值。\(n,k \le 2500\)。
Solution:
注意到那一个奇妙的式子和这个奇妙的条件,我们可以联想到 \(0/1\) 分数规划。不会的出门右转。
我们定义 \(dp_{u,s}\) 为在 \(u\) 的子树下我们一共选择了整整 \(s\) 个点。
所以我们可以对于每一个儿子节点都举出他的子树中选择了多少个点然后对于所有情况取个 \(\max\) 即可的到 \(dp_{u,s}\)。然后我们在进行 \(0/1\) 分规即可。

T2.Sam数
我们定义 \(dp_{i,j}\) 为第 \(i\) 为是 \(j\) 的方案数。于是我们可以非常迅速的得到递推式,\(dp_{i,x} = \sum^{j + 2}_{x = j - 2} dp_{i - 1,x}\)。
但是这个算法的复杂度明显为 \(O(n)\),可以得到 \(30\) 分的高分。但是对于 \(n \le 10^{18}\),我们需要 \(O(\log n)\) 的写法。
对于这个式子,我们可以考虑使用矩阵快速幂进行优化。
矩阵非常好推,自己写。
T3.P3412
较为综合的好题。
我们发现题目等价于把 \(a\) 作为根,然后其余的节点到 \(a\) 的期望值之和。然后我们可以枚举每一个 \(a\) 进行计算。
我们定义 \(dp_u\) 为 \(u\) 子树内其所有的点到 \(u\) 的期望步数。如果这个点的所有子树都聚集到了这个点上,但是我们无法计算出这个点去到其父亲的期望步数。
于是我们再定义 \(g_u\) 为 \(u\) 节点到其父亲的期望步数。
然后我们考虑如何转移 \(g_u\)。
\(u\) 直接走到了他的父亲。
他往下走了。
则有 \(g_u = \dfrac{1}{deg_u} + \sum_{v \in son_u} \dfrac{g_v + g_u + 1}{deg_u}\)。
所以 \(g_u \times deg_u = 1 + \sum_{v \in son_u}(g_v + g_u + 1) = deg_u + (deg_u - 1) \times g_u + \sum_{v \in son_u}g_v\)。
于是 \(g_u = deg_u + \sum_{v \in son_u}g_v\)。
然后我们来计算 \(dp_u\)。\(dp_u = \sum_{v \in son_u}dp_v + g_v \times siz_v\),这是显而易见的。
时间复杂度为 \(O(n^2)\)。
由于每一个节点均有可能作为根节点,所以我们考虑换根 \(dp\)。
假设 \(h_u\) 为以 \(u\) 为根节点,其他节点到这个点的期望步数之和。显然的答案为 \(\dfrac{\sum_{u = 1}^{u \le n} h_u}{n^2}\)。
按照正常的换根 \(dp\) 的转移方式转移即可。
所以可以得出 \(h_u = dp_u + h_{fa_u} - dp_u - siz_u \times g_u + (n - siz_u) \times (g_1 - g_n)\)。
特殊的 \(h_1 = f_1\)。
这样子我们就可以将这个题的复杂度化为 \(O(n)\) 了。
DP Record的更多相关文章
- 2013 Asia Changsha Regional Contest---Josephina and RPG(DP)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4800 Problem Description A role-playing game (RPG and ...
- UVALive - 3942 Remember the Word[Trie DP]
UVALive - 3942 Remember the Word Neal is very curious about combinatorial problems, and now here com ...
- 【UVA 1380】 A Scheduling Problem (树形DP)
A Scheduling Problem Description There is a set of jobs, say x1, x2,..., xn <tex2html_verbatim_ ...
- 【HDU 5370】 Tree Maker(卡特兰数+dp)
Tree Maker Problem Description Tree Lover loves trees crazily. One day he invents an interesting gam ...
- LA 3942 Remember the Word(前缀树&树上DP)
3942 - Remember the Word Neal is very curious about combinatorial problems, and now here comes a pro ...
- Day1:T3 bfs T4 树形DP
T3:BFS 回看了一下Day1的T3...感觉裸裸的BFS,自己当时居然没有看出来... 同时用上升和下降两种状态bfs即可 这一题还要注意一个细节的地方,就是题目要求的是求往返的最优解 k=min ...
- [LeetCode] Student Attendance Record II 学生出勤记录之二
Given a positive integer n, return the number of all possible attendance records with length n, whic ...
- dp方法论——由矩阵相乘问题学习dp解题思路
前篇戳:dp入门——由分杆问题认识动态规划 导语 刷过一些算法题,就会十分珍惜“方法论”这种东西.Leetcode上只有题目.讨论和答案,没有方法论.往往答案看起来十分切中要害,但是从看题目到得到思路 ...
- 算法进阶面试题05——树形dp解决步骤、返回最大搜索二叉子树的大小、二叉树最远两节点的距离、晚会最大活跃度、手撕缓存结构LRU
接着第四课的内容,加入部分第五课的内容,主要介绍树形dp和LRU 第一题: 给定一棵二叉树的头节点head,请返回最大搜索二叉子树的大小 二叉树的套路 统一处理逻辑:假设以每个节点为头的这棵树,他的最 ...
- HDU 4802 && HDU 4803 贪心,高精 && HDU 4804 轮廓线dp && HDU 4805 计算几何 && HDU 4811 (13南京区域赛现场赛 题目重演A,B,C,D,J)
A.GPA(HDU4802): 给你一些字符串对应的权重,求加权平均,如果是N,P不计入统计 GPA Time Limit: 2000/1000 MS (Java/Others) Memory ...
随机推荐
- 力扣601(MySQL)-体育馆的人的流量(困难)
题目: 表:Stadium 编写一个 SQL 查询以找出每行的人数大于或等于 100 且 id 连续的三行或更多行记录. 返回按 visit_date 升序排列 的结果表. 查询结果格式如下所示 示例 ...
- 力扣392(java)-判断子序列(简单)
题目: 给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串.(例如,"ace&quo ...
- Beetl 源码解析:GroupTemplate 类
本文首发于公众号:腐烂的橘子 前言 Beetl 是一款 Java 模板引擎,在公司的项目中大量运用,它的作用是写通用代码时,有一些差异化的逻辑需要处理,这时可以把这些差异化的逻辑写在模板里,程序直接调 ...
- SaaS服务的私有化部署,这样做最高效|云效工程师指北
简介:为了能够有效且高效地同时管理SaaS版本和私有化版本的发布过程,云效团队也结合云原生的基础设施和标准化工具(比如helm)进行了一系列的探索和实践,并将其中一些通能的能力进行了产品化.本文从问 ...
- 数字农业WMS库存操作重构及思考
简介: 数字农业库存管理系统在2020年时,部门对产地仓生鲜水果生产加工数字化的背景下应运而生.项目一期的数农WMS中的各类库存操作均为单独编写.而伴随着后续的不断迭代,这些库存操作间慢慢积累了大量 ...
- Go语言入门分享
简介: Go语言出自Ken Thompson.Rob Pike和Robert Griesemer之手,起源于2007年,并在2009年正式对外发布.Go的主要目标是"兼具Python等动态 ...
- WPF 如何在静态资源定义字体大小
默认的 WPF 的字体大小的单位是像素,如果想要将字体大小使用 pt 点表示,写在 xaml 里面是直接添加 pt 后缀.但是此时如果在静态资源尝试定义的时候写上了 pt 将会在运行的时候提示无法转换 ...
- 2018-11-19-win10-uwp-使用-Azure-DevOps-自动构建
title author date CreateTime categories win10 uwp 使用 Azure DevOps 自动构建 lindexi 2018-11-19 15:26:4 +0 ...
- LLM应用实战:当KBQA集成LLM(二)
1. 背景 又两周过去了,本qiang~依然奋斗在上周提到的项目KBQA集成LLM,感兴趣的可通过传送门查阅先前的文章<LLM应用实战:当KBQA集成LLM>. 本次又有什么更新呢?主要是 ...
- Jenkins+Harbor+gogs+docker+portainer+springboot实现devOps(企业实战)
本篇主要讲述springboot以及vue前后端分离项目,使用Jenkins拉取gogs代码仓库源码,构建Docker镜像并推送至Harbor仓库,使用docker 可视化部署工具[portainer ...