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 ...
随机推荐
- NBF事件中心架构设计与实现
简介:NBF是阿里巴巴供应链中台的基础技术团队打造的一个技术PaaS平台,她提供了微服务FaaS框架,低代码平台和中台基础设施等一系列的PaaS产品,旨在帮助业务伙伴快速复用和扩展中台能力,提升研发 ...
- 阿里云CDN产品经理陈章炜:边缘创新技术和落地实践
简介: CDN除了加速外,不断被赋予更多价值.在阿里云CDN推出的<极速奔跑吧 2021>首场直播中,阿里云架构师和产品经理不仅对近期阿里云发布的CDN产品最佳实践图进行了详细解读,还对C ...
- 【ESSD技术解读-01】 云原生时代,阿里云块存储 ESSD 快照服务如何被企业级数据保护所集成?
简介: 本文描述了阿里云块存储快照服务基于高性能 ESSD 云盘提升快照服务性能,提供轻量.实时的用户体验及揭秘背后的技术原理.依据行业发展及云上数据保护场景,为企业用户及备份厂商提供基于快照高级特 ...
- HZ2023 远足游记
你说得对,但是我放假之前写的 P4689 代码没了 所以来摆 4.6(远足) 上午 走路,刚开始感觉没啥 走到园博园发现没预料中那么顺利 但是还感觉没啥 因为也没预料到 \(N·m\) 学校会让我们原 ...
- 一种光电容积波PPG 转换到心电图ECG进行房颤检测的神经网络模型
具体的软硬件实现点击 http://mcu-ai.com/ MCU-AI技术网页_MCU-AI人工智能 光电体积描记法(PPG)是一种经济有效的非侵入性技术,利用光学方法测量心脏生理学. PPG 在健 ...
- Rails向数据库添加新字段和修改字段
目录 添加字段 控制台上执行下面的命令 会生成文件db/migrate/20210529131328_add_column_to_black_ips.rb 执行迁移 执行结果 修改字段 添加迁移文件 ...
- MySQL:根据指定日期加365天,当前时间距离明年的指定的日期还有多少天-SQL
一.数据准备 /* Navicat Premium Data Transfer Source Server : songweipeng Source Server Type : MySQL Sourc ...
- 纯JavaScript实现“返回顶部”和“评分”,“分享”等小功能
1.返回顶部功能的实现 <!DOCTYPE html> <html> <head> <title>Back to Top</title> & ...
- python教程3.3:字符和编码
1.二进制 计算机只能存储和识别二进制,但是人类常用的字母.数字.汉字怎么用计算机存储和识别呢? 人类强行约定一个对应表,把数字.字母和数字进行对应上,这样就可以用二进制表示字母和数字了. 2.ASC ...
- DP-Modeler软件初步教程1:数据文件导入
1.导入航拍影像的空三文件 先打开DPSlnManager.exe软件,DP数据管理是用这个软件来操作的. 先从CC中导出空间文件,XML格式和无损影像.然后导入到DP 2.从CC中导出OSGB,然 ...