从 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\)。

  1. \(u\) 直接走到了他的父亲。

  2. 他往下走了。

则有 \(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的更多相关文章

  1. 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 ...

  2. UVALive - 3942 Remember the Word[Trie DP]

    UVALive - 3942 Remember the Word Neal is very curious about combinatorial problems, and now here com ...

  3. 【UVA 1380】 A Scheduling Problem (树形DP)

    A Scheduling Problem   Description There is a set of jobs, say x1, x2,..., xn <tex2html_verbatim_ ...

  4. 【HDU 5370】 Tree Maker(卡特兰数+dp)

    Tree Maker Problem Description Tree Lover loves trees crazily. One day he invents an interesting gam ...

  5. LA 3942 Remember the Word(前缀树&树上DP)

    3942 - Remember the Word Neal is very curious about combinatorial problems, and now here comes a pro ...

  6. Day1:T3 bfs T4 树形DP

    T3:BFS 回看了一下Day1的T3...感觉裸裸的BFS,自己当时居然没有看出来... 同时用上升和下降两种状态bfs即可 这一题还要注意一个细节的地方,就是题目要求的是求往返的最优解 k=min ...

  7. [LeetCode] Student Attendance Record II 学生出勤记录之二

    Given a positive integer n, return the number of all possible attendance records with length n, whic ...

  8. dp方法论——由矩阵相乘问题学习dp解题思路

    前篇戳:dp入门——由分杆问题认识动态规划 导语 刷过一些算法题,就会十分珍惜“方法论”这种东西.Leetcode上只有题目.讨论和答案,没有方法论.往往答案看起来十分切中要害,但是从看题目到得到思路 ...

  9. 算法进阶面试题05——树形dp解决步骤、返回最大搜索二叉子树的大小、二叉树最远两节点的距离、晚会最大活跃度、手撕缓存结构LRU

    接着第四课的内容,加入部分第五课的内容,主要介绍树形dp和LRU 第一题: 给定一棵二叉树的头节点head,请返回最大搜索二叉子树的大小 二叉树的套路 统一处理逻辑:假设以每个节点为头的这棵树,他的最 ...

  10. 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 ...

随机推荐

  1. 一文读懂容器存储接口 CSI

    简介: 在<一文读懂 K8s 持久化存储流程>一文我们重点介绍了 K8s 内部的存储流程,以及 PV.PVC.StorageClass.Kubelet 等之间的调用关系.接下来本文将将重点 ...

  2. 达摩院重要科技突破!空天数据库引擎Ganos解读

    简介: Ganos空天数据库引擎是李飞飞带领的达摩院数据库与存储实验室研发的新一代位置智能引擎,采用了平台即服务.多模融合.计算下推和云原生全新处理架构,为政府.企事业单位.泛互联网客户提供移动对象. ...

  3. 大模型必备 - 中文最佳向量模型 acge_text_embedding

    近期,上海合合信息科技股份有限公司发布的文本向量化模型 acge_text_embedding 在中文文本向量化领域取得了重大突破,荣获 Massive Text Embedding Benchmar ...

  4. 如何拥有自己的专属GPT-本地部署目前最强大模型llama3

    你是不是苦于没法使用ChatGPT?或者访问了ChatGPT却没法使用GPT4?现在一切问题都可以解决了! 4月18日,Meta发布两款开源Llama 3 8B与Llama 3 70B模型,供外部开发 ...

  5. QT之Mysql驱动

    错误现象 找不到Mysql驱动 QSqlDatabase: QMYSQL driver not loaded 一.驱动查看 在程序中直接打印QT Creator中现有的驱动,打印方式如下: qDebu ...

  6. 02 Orcad设计环境讲解与工程创建

    02   Orcad设计环境讲解与工程创建 学习目标: 1)   掌握Orcad软件绘制元件库以及原理图的方法: 2)   掌握Allegro软件绘制PCB库以及PCB的方法: 3)   掌握Orca ...

  7. git将本地项目关联远程仓库并上传到新分支

    混合项目开发,项目交接的时候没做好,新入职接手老项目的时候一脸懵逼,进入开发阶段时,越搞越不对,越搞越不对,总感觉 本地跑的项目和己方测试环境以及客户的测试环境和目标环境不一致,结果发现着手的两套代码 ...

  8. 一个随时更新的js库

    1.src同级建commFunction=>timer.js 2.main.js引入 import time from '../commonFunction/time' Vue.prototyp ...

  9. 新闻网页Python爬虫(jieba分词+关键词搜索排序)

    前言 最近做了一个python3作业题目,涉及到: 网页爬虫 网页中文文字提取 建立文字索引 关键词搜索 涉及到的库有: 爬虫库:requests 解析库:xpath 正则:re 分词库:jieba ...

  10. Go语言连接Redis之go-redis使用指南

    参考下面的连接: https://mp.weixin.qq.com/s?__biz=MzU5MjAxMDc1Ng==&mid=2247483899&idx=1&sn=b103c ...