正解:树形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. radio的取值

    <dd id="pingjia${evaluation.orderItemId }" class="ms-wf clearfix" idx="$ ...

  2. linux 开机自启转载

    设置开机启动示例: # touch /etc/init.d/rc.local 设置为可执行: # chmod +x /etc/init.d/rc.local 用 update-rc.d 设置启动级别: ...

  3. PHP 二叉树 二叉排序树实现

    <?php /** * PHP 二叉树 * @author : xiaojiang 2014-01-01 * */ class Tree { protected $k = null; prote ...

  4. JWNL的配置使用

    JWNL是什么? JWNL is an API for accessing WordNet-style relational dictionaries. It also provides functi ...

  5. Delphi应用程序的调试(十)调试器选项

    可在两个级别上设置调试选项:工程级和环境级.在前面的讲解中讲解了工程级调试选项,通过主菜单[Project | Options…]打开如下对话框: 可在Debugger Options对话框中设置全局 ...

  6. Shell xargs

    from here 简介之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如: 这个命令是错误的find /sbin -perm + ...

  7. 一些有用的java 框架

    jwt  用于生成web toke的类库 http://jwt.io/ jasypt java加密类库 http://www.jasypt.org/

  8. 【大数据系列】在windows下连接linux 下的hadoop环境进行开发

    一.下载Eclipse并安装 二.下载exlipse的hadoop plugin 三.打开Map Reduce视图 Window --> Perspective --> Open pers ...

  9. Android与互联网的交互方式有三种

    数据下载:下载网络上的的数据,包括图片.代码文本.XML文件.JSON数据,音/视频等大文件,调用webservice. 数据上传:上传图片.文本.XML.JSON数据.音/视频文件,调用webser ...

  10. MySQL DROP 大表时的注意事项

    对于表的删除,因为InnoDB引擎会在table cache层面维护一个全局独占锁一直到DROP TABLE完成为止,这样,对于表的其他操作会被HANG住.对于较大的表来说,DROP TABLE操作可 ...