Usoperanto

Problem's Link


Mean:

给定n个单词,每个单词可以作为形容词来修饰其他单词.

如果当前单词Wi修饰Wj,那么这个修饰的代价是:Wi~Wj之间的单词的总长度.

你需要按照给定的修饰关系来安排单词的顺序,使得所有修饰代价的和最小.

analyse:

比赛时想到的是使用bfs+priority_queue来贪心,后来发现如果单词是嵌套的话,贪心就有问题.

首先根据修饰关系来构图,注意这里应该是森林而不是树,这也是本题的一个trick.

根结点不被任何结点修饰,叶结点不修饰任何结点.

建好图以后,对于每一棵树,从叶结点开始向上dp.

dp的策略:

对于当前结点,把他的所有儿子排序,然后按照前缀和累加权值(除最后一个).

然后把当前的结点所代表的子树打包(看成一个结点),累加子树的权值,往上传递.

Time complexity: O(N)

view code

转载于:https://www.cnblogs.com/crazyacking/p/4853663.html

树形dp - BNU 39572 Usoperanto相关推荐

  1. BNUOJ 52305 Around the World 树形dp

    题目链接: https://www.bnuoj.com/v3/problem_show.php?pid=52305 Around the World Time Limit: 20000msMemory ...

  2. [树形dp] Jzoj P5233 概率博弈

    Description 小A和小B在玩游戏.这个游戏是这样的: 有一棵n个点的以1为根的有根树,叶子有权值.假设有m个叶子,那么树上每个叶子的权值序列就是一个1->m 的排列. 一开始在1号点有 ...

  3. fwt优化+树形DP HDU 5909

    1 //fwt优化+树形DP HDU 5909 2 //见官方题解 3 // BestCoder Round #88 http://bestcoder.hdu.edu.cn/ 4 5 #include ...

  4. BZOJ 1040 ZJOI2008 骑士 树形DP

    题目大意:给定一个基环树林,每一个点上有权值,要求选择一个权值和最大的点集,要求点集中的随意两个点之间不能直接相连 最大点独立集--考虑到n<=100W,网络流铁定跑不了,于是我们考虑树形DP ...

  5. POJ 3342 树形DP+Hash

    这是很久很久以前做的一道题,可惜当时WA了一页以后放弃了. 今天我又重新捡了起来.(哈哈1A了) 题意: 没有上司的舞会+判重 思路: hash一下+树形DP 题目中给的人名hash到数字,再进行运算 ...

  6. [NC15748]旅游 树形dp基础

    菜鸡第一次接触树形dp这个东西,不过这个东西还是很好理解的(可能是因为模板题吧) 个人感觉,相比线性dp,树形dp的状态转移方程更加的直观,难点主要是在"树"的结构上比较麻烦. 题 ...

  7. 容斥 + 树形dp ---- 2021 icpc 沈阳 L Perfect Matchings

    题目链接 题目大意: 就是给你一个2n2n2n个点的完全图,从这个图里面抽出2n−12n-12n−1条边,这些边形成一颗树,现在问你剩下的图里面点进行完美匹配有多少种方案? 解题思路: 一开始被完美匹 ...

  8. 树形dp ---- gym101667 A(贪心 + 树形dp + 两个dp方程组维护)

    题目链接 题目大意: 就是一棵5e35e35e3的树,可以选择一些点,放上基站,如果uuu上的基站价值为ddd,那么距离uuu小于等于ddd的点都会被覆盖,问使得整棵树被覆盖需要的最小价值. 解题思路 ...

  9. 树形dp ---- 2018年杭电多校第二场 H travel

    题目大意: 就是给你一个带点权的树,找到3条独立互不相交的路径使得权值和最大 解题思路: 很经典的树形dp 我们设dp[root][j][k]dp[root][j][k]dp[root][j][k]表 ...

最新文章

  1. 【MySQL】 日 常 整 理 记 录 分 享
  2. .NET中栈和堆的比较(二)
  3. PLSQL 之类型、变量和结构
  4. 响应式Web设计——最佳指南
  5. Spring4.0学习笔记(3) —— Spring_Bean之间的关系
  6. 耳机不分主从是什么意思_无延时音质好的蓝牙耳机能代替有线耳机吗—DOSS T60上手体验...
  7. 【报告分享】2022年快手新市井商业内循环营销通案:让企业经营走向确定性增长.pdf(附下载链接)...
  8. java keydown_键盘事件keydown、keypress、keyup随笔整理总结
  9. Atitit mybatis的扩展使用sql udf,js java等语言 目录 1.1. 默认,mybatis使用xml,sql等语言来书写业务流程 1 2. 使用java扩展函数 1 2.1.
  10. uniapp App权限配置
  11. 计算机系统崩溃重新装机,电脑系统崩溃无法开机如何进行重装系统
  12. .doc文件不显示word图标
  13. html 页面北京怎么设置,怎么给html设置背景色
  14. 杨国福和张亮“天地对决” 麻辣烫江湖要变天了吗?
  15. 积木报表VS睿思BI报表
  16. 周爱民:架构的实战过程
  17. 分析Android长按电源键事件并定制长按电源dialog
  18. MYSQL limt随着offset增大效率变低
  19. SAP PO中如何打印预览,找到Message type以及找到驱动程序和Form输出程序
  20. win10怎么设置护眼背景

热门文章

  1. 测试比java_Java11比Java8快多少,不是测试人员一眼也能看懂
  2. C 多态和java多态_C与java的多态机制与区别
  3. python编译exe运行慢_Python运行速度慢你知道这是为什么吗?
  4. php数据库缓存实现原理,PHP那些事:数据库缓存原理
  5. java string 精度_Java 中的浮点数取精度方法
  6. android接推流sdk,Android——直播推流SDK
  7. Oracle/PLSQL FETCH Statement
  8. vue单表table
  9. 修改联想笔记本键盘快捷键
  10. Python案例:获取天气信息并绘制气温折线图