洛谷 P4201 设计路线 [NOI2008] 树形dp
正解:树形dp
解题报告:
大概是第一道NOI的题目?有点激动嘻嘻
然后先放个传送门
先大概港下这题的题意是啥qwq
大概就是给一棵树,然后可以选若干条链把链上的所有边的边权变成0,但是这些链不能有交集,问所有点到根的边权最大值的最小值是多少,然后有几种这样的方案
大概解释下我们是怎么搞出来这个题意的...我发现我语文巨差好几道题死于无法理解题意了?药丸药丸QAQQQ
就是首先看懂它说每个城市最多和一个左边的城市相连,那我们把它横过来看就相当于说最多和一个上面的城市相连,就是棵树咯,那就先把无解判掉,就如果m!=n-1就无解了咯(话说它还给了句说经度不同?然而我没懂这句话暗示了什么我就没放上来了,先放着,存疑qwq
然后就是颗树,它又说了一堆,还是可以理解的玩意儿,说能把一些路变成0啥的,不详说了大概这个意思
然后又一个点"每个城市在每个序列中最多出现一次""每个城市最多只能出现在一条规划路线中",好滴然后就能明白,就是要扣一些链并且链不能有公共部分咯
好那我们总算把题目理清了QAQ开始讲题QAQ
其实这题dp,没有那么难?对我而言感觉没有前面刚肝的pocky游戏那么难搞欸? 就是想我肯定还是想不出来的,但是理解还是相对比较好理解的呢(umm也可能是我状压学太差了QAQ)
感觉没有什么好港的鸭。。。就直接进入正题讲这个dp趴
就是最最普通的序列dp鸭,f[i][j][0/1/2]:到第i个点了,当前最大边权和=j,连了0/1/2个崽的方案数量,然后方案数这种东西显然可以乘法原理处理转移一波
就是直接枚举j,通过一些玄学计算x(晚上来解释qwq)可以等到j小于等于10的所以直接枚举就好qwq
(关于这个j的计算,最简单的可以直接树链剖分知识得小于等于20,但是如果优秀一点儿,可以想到三叉树balabala的然后就可以得到j小于等于10的呢?umm反正这两种我都不会呢,,,等学了树链剖分再来解释趴qwq)
然后还是详细解释下状态转移方程qwq
就分类讨论鸭,考虑选择 连这个崽 和 不连这个崽,转移到f[i][j][0/1/2]
设这个点是u然后枚举到的崽是v
可以考虑到,如果连这个崽,那这个崽的maxans(也就是j)就不会被更新,否则就会被更新,所以就从j和j-1转移来嘛
还一个就是如果我选了这个崽那这个崽是最多只能连一个崽的,但是如果没选当然是没限制的012都成qwq
那就 f[u][j][2]=f[u][j][2]*(f[v][j-1][0]+f[v][j-1][1]+f[v][j-1][2])+f[u][j][1]*(f[v][j][0]+f[v][j][1])
f[u][j][1]=f[u][j][1]*(f[v][j-1][0]+f[v][j-1][1]+f[v][j-1][2])+f[v][j][0]*(f[v][j][0]+f[v][j][1])
f[u][j][0]=f[u][j][0]*(f[v][j-1][0]+f[v][j-1][1]+f[v][j-1][2])
umm大概这样趴,如果有错明儿再搞算了qwq
最近好颓啊感觉,信心满满地说要每天做一道题然后结果是每天颓好久QAQ哭死了QAQ
然后T1答案就很简单了嘛,就搞完之后从小到大枚举j,然后如果f[1][j][0/1/2]!=0了j就是答案了,能明白?
over!
大概下周会做掉这题然后来放代码qwq
洛谷 P4201 设计路线 [NOI2008] 树形dp的更多相关文章
- 洛谷 P3177 [HAOI2015]树上染色 树形DP
洛谷 P3177 [HAOI2015]树上染色 树形DP 题目描述 有一棵点数为 \(n\) 的树,树边有边权.给你一个在 \(0 \sim n\)之内的正整数 \(k\) ,你要在这棵树中选择 \( ...
- 洛谷P1040 加分二叉树(树形dp)
加分二叉树 时间限制: 1 Sec 内存限制: 125 MB提交: 11 解决: 7 题目描述 设一个n个节点的二叉树tree的中序遍历为(l,2,3,...,n),其中数字1,2,3,...,n ...
- 洛谷P4438 道路 [HNOI/AHOI2018] 树形dp
正解:树形dp 解题报告: 传送门! 昂首先看懂题目趴QwQ大概就是说有棵满二叉树,有n个叶子节点(乡村)和n-1个非叶子节点,然后这棵树的每个节点有三个属性abc,对每个非叶子节点可以从与子节点的两 ...
- 洛谷 P3267 [JLOI2016/SHOI2016]侦察守卫(树形dp)
题面 luogu 题解 树形\(dp\) \(f[x][y]表示x的y层以下的所有点都已经覆盖完,还需要覆盖上面的y层的最小代价.\) \(g[x][y]表示x子树中所有点都已经覆盖完,并且x还能向上 ...
- 洛谷P1351 联合权值(树形dp)
题意 题目链接 Sol 一道很简单的树形dp,然而被我写的这么长 分别记录下距离为\(1/2\)的点数,权值和,最大值.以及相邻儿子之间的贡献. 树形dp一波.. #include<bits/s ...
- 洛谷P4099 [HEOI2013]SAO(树形dp)
传送门 HEOI的题好珂怕啊(各种意义上) 然后考虑树形dp,以大于为例 设$f[i][j]$表示$i$这个节点在子树中排名第$j$位时的总方案数(因为实际只与相对大小有关,与实际数值无关) 我们考虑 ...
- 洛谷 P1351 联合权值 —— 树形DP
题目:https://www.luogu.org/problemnew/show/P1351 树形DP,别忘了子树之间的情况(拐一下距离为2). 代码如下: #include<iostream& ...
- 洛谷 P2634 聪聪可可 —— 树形DP / 点分治
题目:https://www.luogu.org/problemnew/show/P2634 今天刚学了点分治,做例题: 好不容易A了,结果发现自己写的是树形DP...(也不用找重心)(比点分治快) ...
- 洛谷P3047 [USACO12FEB]Nearby Cows(树形dp)
P3047 [USACO12FEB]附近的牛Nearby Cows 题目描述 Farmer John has noticed that his cows often move between near ...
随机推荐
- Java的多线程
Java使用Thread代表线程,所有的线程对象都必须是Thread类或其子类的实例.每个线程的作用就是执行一段程序流(完成一定的任务). Java使用线程执行体来代表这段程序流. 1. 继承Thre ...
- 剑指offer面试题5:逆序打印单链表(Java)
Java创建单链表(头插法.尾插法),并逆序打印单链表: package day_0324; import java.util.Scanner; import java.util.Stack; cla ...
- PHP错误 。Parse error: syntax error, unexpected T_INLINE_HTML, expecting T_ENDSWITCH or T_CASE or T_DEFAULT
If you wan't to use the alternative syntax for switch statements this won't work: <div> <?p ...
- 怎样用Windows10全屏流畅运行红色警戒2
https://jingyan.baidu.com/article/9113f81b1cb7f22b3214c724.html jpg 转 rar
- 【总结】redis和memcached的区别
1.Redis和Memcache都是将数据存放在内存中,都是内存数据库.不过memcache还可用于缓存其他东西,例如图片.视频等等: 2.Redis不仅仅支持简单的k/v类型的数据,同时还提供lis ...
- artdialog5 bug
1.使用artdialog5时,使用两个输入框传值,一直无法取到值,使用简单的ID无法取到值,如id=branch..改为id=branch_str_dialog就可以了,问题是解决了,可是没有找到原 ...
- React组件设计(转)
React组件设计 组件分类 展示组件和容器组件 展示组件 容器组件 关注事物的展示 关注事物如何工作 可能包含展示和容器组件,并且一般会有DOM标签和css样式 可能包含展示和容器组件,并且不会有D ...
- G711算法学习
采样和量化 首先需要明确的两个概念,“采样”和“量化”.对于给定的一个波形,采样是从时间上将连续变成离散的过程,而采样得到的值,可能还是不能够用给定的位宽(比如8bit)来表示,这就需要经过量化,即从 ...
- Elasticsearch学习之深入聚合分析四---案例实战
1. 需求:比如有一个网站,记录下了每次请求的访问的耗时,需要统计tp50,tp90,tp99 tp50:50%的请求的耗时最长在多长时间tp90:90%的请求的耗时最长在多长时间tp99:99%的请 ...
- LeetCode 77 Combinations(排列组合)
题目链接:https://leetcode.com/problems/combinations/#/description Problem:给两个正数分别为n和k,求出从1,2.......n这 ...