Day 6

DAG上DP

其实我感觉差不多啊。。。嘶~

不都是DP么?


DAG即有向无环图

这里举出两经典的DAG模型,嵌套矩形硬币问题

嵌套矩形(不固定起点最长路及其字典序)

描述

有n个矩形,每个矩形可以用 (a,b) 来描述,表示长和宽 矩形 X(a,b) 可以嵌套在矩形 Y(c,d) 中,当且仅当 a<c,b<d
或者 b<c,a<d(旋转90度) 例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)中
你的任务是选出尽可能多的矩形排成一行,使得除最后一个外,每一个矩形都可以嵌套在下一个矩形内

分析 我们就是在求DAG上的不固定起点的最长路径

硬币问题(固定终点的最长路和最短路)

描述

有 n 种硬币,面值分别为V1, V2······Vn,每种都有无限多 给定非负整数 S ,可以选用多少个硬币,使得面值之和恰好为S?
输出硬币数目的最小值和最大值

分析

看上去和嵌套矩形问题很不一样,但本题的本质也是DAG上的路径问题 将每种面值看作一个节点,设初始状态为S,目标状态为0 若当前在状态
i,每使用一个硬币 j,状态便转移到i - Vj


以上都是课件,(–__–)哈哈哈

其实也没什么好说的,书读百遍,其义自见嘛~

那就gang题目吧


  • A题
    dp[i]表示i节点的花费,dp[i] = max(dp[j] + a[i], dp[i])

  • B题
    迪杰斯特拉跑一遍求最短路,dp来求


end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\Parser.js:437 throw err; // Rethrow non-MySQL errors ^ Error: secretOrPrivateKey must have a value at module.exports [as sign] (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\jsonwebtoken\sign.js:107:20) at Query.<anonymous> (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\router_handler\2user.js:49:26) at Query.<anonymous> (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\Connection.js:526:10) at Query._callback (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\Connection.js:488:16) at Sequence.end (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:24) at Query._handleFinalResultPacket (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\sequences\Query.js:149:8) at Query.EofPacket (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\sequences\Query.js:133:8) at Protocol._parsePacket (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\Protocol.js:291:23) at Parser._parsePacket (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\Parser.js:433:10) at Parser.write (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\Parser.js:43:10) Node.js v18.12.1
06-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值