正解:树形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的更多相关文章

  1. 洛谷 P3177 [HAOI2015]树上染色 树形DP

    洛谷 P3177 [HAOI2015]树上染色 树形DP 题目描述 有一棵点数为 \(n\) 的树,树边有边权.给你一个在 \(0 \sim n\)之内的正整数 \(k\) ,你要在这棵树中选择 \( ...

  2. 洛谷P1040 加分二叉树(树形dp)

    加分二叉树 时间限制: 1 Sec  内存限制: 125 MB提交: 11  解决: 7 题目描述 设一个n个节点的二叉树tree的中序遍历为(l,2,3,...,n),其中数字1,2,3,...,n ...

  3. 洛谷P4438 道路 [HNOI/AHOI2018] 树形dp

    正解:树形dp 解题报告: 传送门! 昂首先看懂题目趴QwQ大概就是说有棵满二叉树,有n个叶子节点(乡村)和n-1个非叶子节点,然后这棵树的每个节点有三个属性abc,对每个非叶子节点可以从与子节点的两 ...

  4. 洛谷 P3267 [JLOI2016/SHOI2016]侦察守卫(树形dp)

    题面 luogu 题解 树形\(dp\) \(f[x][y]表示x的y层以下的所有点都已经覆盖完,还需要覆盖上面的y层的最小代价.\) \(g[x][y]表示x子树中所有点都已经覆盖完,并且x还能向上 ...

  5. 洛谷P1351 联合权值(树形dp)

    题意 题目链接 Sol 一道很简单的树形dp,然而被我写的这么长 分别记录下距离为\(1/2\)的点数,权值和,最大值.以及相邻儿子之间的贡献. 树形dp一波.. #include<bits/s ...

  6. 洛谷P4099 [HEOI2013]SAO(树形dp)

    传送门 HEOI的题好珂怕啊(各种意义上) 然后考虑树形dp,以大于为例 设$f[i][j]$表示$i$这个节点在子树中排名第$j$位时的总方案数(因为实际只与相对大小有关,与实际数值无关) 我们考虑 ...

  7. 洛谷 P1351 联合权值 —— 树形DP

    题目:https://www.luogu.org/problemnew/show/P1351 树形DP,别忘了子树之间的情况(拐一下距离为2). 代码如下: #include<iostream& ...

  8. 洛谷 P2634 聪聪可可 —— 树形DP / 点分治

    题目:https://www.luogu.org/problemnew/show/P2634 今天刚学了点分治,做例题: 好不容易A了,结果发现自己写的是树形DP...(也不用找重心)(比点分治快) ...

  9. 洛谷P3047 [USACO12FEB]Nearby Cows(树形dp)

    P3047 [USACO12FEB]附近的牛Nearby Cows 题目描述 Farmer John has noticed that his cows often move between near ...

随机推荐

  1. Java的多线程

    Java使用Thread代表线程,所有的线程对象都必须是Thread类或其子类的实例.每个线程的作用就是执行一段程序流(完成一定的任务). Java使用线程执行体来代表这段程序流. 1. 继承Thre ...

  2. 剑指offer面试题5:逆序打印单链表(Java)

    Java创建单链表(头插法.尾插法),并逆序打印单链表: package day_0324; import java.util.Scanner; import java.util.Stack; cla ...

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

  4. 怎样用Windows10全屏流畅运行红色警戒2

    https://jingyan.baidu.com/article/9113f81b1cb7f22b3214c724.html jpg 转 rar 

  5. 【总结】redis和memcached的区别

    1.Redis和Memcache都是将数据存放在内存中,都是内存数据库.不过memcache还可用于缓存其他东西,例如图片.视频等等: 2.Redis不仅仅支持简单的k/v类型的数据,同时还提供lis ...

  6. artdialog5 bug

    1.使用artdialog5时,使用两个输入框传值,一直无法取到值,使用简单的ID无法取到值,如id=branch..改为id=branch_str_dialog就可以了,问题是解决了,可是没有找到原 ...

  7. React组件设计(转)

    React组件设计 组件分类 展示组件和容器组件 展示组件 容器组件 关注事物的展示 关注事物如何工作 可能包含展示和容器组件,并且一般会有DOM标签和css样式 可能包含展示和容器组件,并且不会有D ...

  8. G711算法学习

    采样和量化 首先需要明确的两个概念,“采样”和“量化”.对于给定的一个波形,采样是从时间上将连续变成离散的过程,而采样得到的值,可能还是不能够用给定的位宽(比如8bit)来表示,这就需要经过量化,即从 ...

  9. Elasticsearch学习之深入聚合分析四---案例实战

    1. 需求:比如有一个网站,记录下了每次请求的访问的耗时,需要统计tp50,tp90,tp99 tp50:50%的请求的耗时最长在多长时间tp90:90%的请求的耗时最长在多长时间tp99:99%的请 ...

  10. LeetCode 77 Combinations(排列组合)

    题目链接:https://leetcode.com/problems/combinations/#/description    Problem:给两个正数分别为n和k,求出从1,2.......n这 ...