当前位置:首页 >> 学科竞赛 >>

信息学奥赛中的动态规划


主讲人:FireStorm

数字三角形
——IOI1994

? 题目描述 Description 如图所示的数字三角形,从顶部出发,在每一结点可以选择向左走或得向右走,一直 走到底层,要求找出一条路径,使路径上的值最大。
? 输入描述 Input Description 第一行是数塔层数N(1<=N<

=100)。 第二行起,按数塔图形,有一个或多个的整数,表示该层节点的值,共有N行。 ? 输出描述 Output Description 输出最大值。 ? 样例输入 Sample Input 5 13 11 8 12 7 26 6 14 15 8 12 7 13 24 11 ? 样例输出 Sample Output 86

解法1:暴搜
?

DFS一遍遍历整个数字三角形,对于每个节点,我们有2个选 择,那么,n层的数字三角形有2^n种可能,所以时间复杂度 为O(2^n)

T L E!

解法2:贪心
?

一路下去只找最大的可以吗?

WA!

解法3:最长路
? ? ?

将整个数字三角形看作一个由点和边组成的图,以a[1][1]为 起点,1=鸬(xa]=i[i]<=N⁢=10n)的长路
? Dijtatra算法暴司题部分数据有负。  SPFA算法暴O(kM)的话应该能行



将Bellman-Fder算法暴O(VE)有点危险啊
owCyr算法暴O(n^3)你确定要用?

WA方法可行但是打起来好麻烦  解还有什么更好的算法?

WA当然有!那就是本课要讲的容双—IO态规划_ ? 蘔A分析这数字三角形,对们有以吗发现:个由点,只会受到上 面两由点,值,的影响,而上面点,值,也只会受到更加上 面的点,值,的影响 纱丝尚闯龅莨槭

dp[i][j]=xle(dp[i-[1]j],dp[i-[1]j-[1)+a[i][j]
将上面这数递归式在态规划_椭斜唤凶鲎刺品匠淌剑 这数捉子我们有以吗从dp[[1]为开始递推,直到字三角形有 的长后行是 ? 间复杂度 蜲(n^2),完文赞压力~


? 题题题题

态规划_褪怯琶赖 态规划_褪巧衿娴 态规划_褪怯腥さ 态规划_褪羌虻サ 态规划_褪强ㄆ值





将态规划_褪墙
?的

什么鬼! 教婊甠褪欠乐贡0 的 态规划_妥罴虻コず猛媪


?晤大隙鲜态规划_土耍。 0-1背包问题狪OMerk fod=i Hellman 1978狪ONOIP2005普及组? 目描述 Description 如由于该目描的目描述 D版本过多,不再述 Ou入描述 Input Description 第入描一行是有两由数,T(lt;=N&Tt;=100)0)和M(lt;=N&Mt;=100)。┯幸酶隹渭崭窀 开,T代表大值∝量,M代表物品数字目。接下来的M行每行包括两由在1到0)≈ (包括1和0)。┱矸直鹗靖貌烧掣鑫锲肥涓春透鼋谖锲肥邸 ? 出描述 Output Description 输出最包括行是,这行是只包夯直由数,表示该在不超过规定∝量的情况下,以吗拿到 的长大价。 ? 例输入 Sample Input 5 ? ? 例输入 Sample Output 861 数据范围及提示ata.g Size &ple; Hi lo【数据规模】 于每30%数字据,Mt;=100); 于每部? ? 汤瞎婢兀
?搜
?TLE



?一定WA
?最短路纳以选试
WA 态规划_筒攀峭醯繿



将们有先分析下搜
?的过程: 们有对个节物品进行了索文,产生了大量的状态,个节状态包括三个要 ,呛 1.目前有矫的背包的容量,这数不用多说 2.目前有经获得的价。,这数也不用多说 3.目前有经处理了多少物品,技

?

将有什么想法没

WA 为什么不技
WA
将在使用相同的容量和处理了相同的物品后使拢下的索文过程应该是相 同的,假如有N衝节物品我们有已经处理了m课所么,还需要处理的物 品数量就是n-m,但是在背包剩余体积为v的情况下,拢下n-m节物品 产生的长优解应该是相同的,这样就以选简化索文过程,但是前面的 怎么办呢

前面的当然要长好的! 于是我们有得到条路结论呛 在他用状态均相同的情况下,择向长好的总市对的!


?
?以时我们有以吗开始优化这数索文了:每次索文到条节状态,就从之 前
?到过的状态里找遍遍全午果看见以选替换的状态就更新 
?众:你不觉得更慢了么 
?以时我怎么办呢

? 题题

你还记图0排序?

直接用字乳下岁技
没问题!魁塔据范围:lt;=N&Tt;=100)0,lt;=N&Mt;=100)。刺恍枰 T
?
?我遍般习惯写成:
dp[i+[1]j]=xle(dp[i1]j],dp[i+[1]j]) dp[i+[1]j+v[i]]=xle(dp[i+[1]j+v[i]],dp[i1]j]+c[i]
T

?这数掖个人喜好就以选了,没有强制求找的
处理,也只要rm>遍遍全把字乳填充好就以选啦使落复杂度 蜲(TM)?
?P.S.:这字母是谁规定的,这么恶
?

午果卡纳艺复怎么办

WA 滚蛋式沃乳

?



将你还记兔斐波那契问题怎么啄整?

c=a+b a=b b=c 根本不用开条节沃乳嘛! 这数问题也一样,除了前有是,他用的状态根本就用不到嘛! 么,n阂? 题桃宦簿褪撬#秩橹涣2行就以选了,每处理完有是, 就把二行起的滇果放回一行是,继续处理 滚式沃乳是用落复换艺复?一种策略将有没有更好的方法呢

WA




将背包问题以选颐个维沃乳解决你造?

由于∝量没有负数,以时以选直接向后转移,而且不用向下 转移了,但这样就有能,∝复处理条节物品我怎么办

很简单,改变下方向从顶后往前处理就以选啦~


?至此,01背包完满完成~

难度增加的背包问题酉(sang)闻(xin)乐(ndeg)见(kuang)的背包问题
超大背包问题
?个节物品周卖拿个船有物品数量Mt;=100)。嘲萘縏t;=100)^9, 个节物品数价。t;=100)。鼋谖锲肥亓縯;=100)^9


?由于司题物品数价。非常 ?允币匝〗玠p沃乳改为由已处 理的物品数量和价。,沃乳内存储容双改为当前
枋亓 即可WA 烃维背包问题
?于每个节物品我分别有体积v和∝量w1=鹛寤汀亓烤怀 标的情况下以吗拿到的长大价。?
?维沃改为三维,改变下转移,可以简化为烃维从顶后往前rm> 得出正确答案WA 完文背包问题
?个节物品以吗拿无限船有只要不超过大值∝量即可WA 思路罕┧嘲+枚举?
?在状态转移时枚举个节物品以吗拿的次数,间复杂度 为O(VNK)? 优化罕┘跎傥锲分掷?
?于每条节物品来耍,假如点(亓看笥诘扔诹硖踅谖锲非宜 的价。比另条节物品低所么,要它何用?以选直接省略掉该 物品我以时只要先预对所有物品进行遍遍O(n^2)的预处理, 就能带来很的可优化? 优化禾白0-1背包?
?将条节物品看成个的物品我间复杂度 蚊挥蟹⑸浠但是大家记兔个课叫做鬼谷子的钱淬(猓

如条节物品最多以吗拿10课所则以吗拆分成:1个该物品我2 节该物品我3节该物品我4节该物品我达到g('sk)的级爆按也 是数不错的优化?
?
? 思路禾耙酶鑫嘲饩?
?大家还记兔个维的背包解决方案?

此题也可有只不过为了使条节物品吭选重复 计爽1只需要将顶后往前改为从前往后即可使落复杂度 蜲(VN)? 多重背包问题
?于每个节物品我以吗拿不同的次数,如贪茵的1船有茵的10 船有茵的100次 
?依然采取之前动烃进制思想,简化问题饣旌媳嘲侍猹
?于每条节背包问题有茵多种物品以选择向贪茵周卖拿个件的, 有能吗拿个的整有茵能吗无限拿的,这时候应该怎么办

WA 这数问题综合了三种背包从耳 表这数问题以选使用各种背包 问题的优化方法

解优化?
?采用完文背包问题的优化方式1,即可瞬间去除大量无用物 品?
?P.S.:简滞际是数垃圾清理器? 优化?
?先不考虑多重背包1只考虑01背包和完文背包那么,n簿鸵 选颐喜闻乐济的个维沃乳方法求解有只要在转移前判断下是 从前往后还是触后往前转移就行了那么,多重背包怎么办

笨!用二进制转成个的01背包 金明的预算方案(NOIP2006提搁成)
目描述 Description 如金明今天很开心,家里购臵的新房就要领钥匙了那新房里 有一间金明己手专矫的很宽敞的房间。更让他高兴数浊我 妈妈昨天对他耍:“默值房间需要购买哪些物品我怎么布 臵那勉说了爽1只要不超过N元钱就行”。今天一早,金明 就开始做预算了那他把想买的物品分为两类:主件与附件 ,附件是触属于某个主件整有乙图际是行施主件与附件的 例子 ? 午果要买归类为附件的物品表守须先买该附件示掉(骷 。个节△件以选倚0课、1个或鲅「郊8郊辉儆写ナ 于己手的附件。金明想买的东西很多,肯定会超过妈妈限 定的N元。于是我他把每件物品规定了条节重要度我分为5 等贪颐数,1~5示该,第5等最重要。他还从因特网上查到 了每件物品的价格(都是10元整数,倍)。他希望在不超 过N元(可以等于N元)整前提下,使每件物品的价格与重 要度的乘积的总和大。
? 设第j件物品的价格为v]j]1重要度为w]j]1共选中了k 件物品表枢号依次为j1,j2, 琷k所则所找的总和为呛 v]j1]*w]j1]+v[j2]*w]j2]+ …+v[jk]*w]jk]。(其 中*为乘号) 请你帮助金明设计条节满足求找的购物单
? ?△件 电脑 书柜

附件 打印机,扫描 仪 书,

书桌

台灯,文具

工一肝 无 数纂描述 Input Description 第一1是,为两由数数,表颐个课颊格隔开: N m (其中N(t;=13200。┦靖米芮韒(t;=16。┪M郝蛭锲返慕谖帧# 从第2行底糙m+1是,第j行给出了枢号为j-1的物品的基本字据,每行有3节非负数, v p q (其中v示该层物品的价格(vt;=10)0。琾示该层物品的重要度唯1~5),q示该层物品 是△件还是附件。午果q=0表示该层物品为△件全午果q>0表示该层物品为附件,q是所 属主件整枢号) 出描述 Output Description 输只有直由数数,表为不超过窜钱,的物品的价格与重要度乘积的总和的长大值(t;=1200)。淙 Sample Input 5 0)0 8 10 2 0 40 8 1 30 8 1 40 3 0 50 2 0 例输入 Sample Output 862200 数据范围及提示ata.g Size &ple; Hi lo无 数题题题题 ?



将这题放眼望去应该是节西形dp,好可怕的耍  不过好好看楷还是能发现些什么整雍 于每个节△件我它最多2个选附件,么,个节物品周有这几 种情况呛 1.不带附件 2.带附件A 3.带附件B 4.带附件A和B 5.连主件都能旅?
?么,只要在状态转移时枚举个节物品拿还是能旅,妹几选附 件即可  解至此,背包问题部 但这仅仅是简单的背包问题已, 数区间型DP
别看我看标题馐庸椴
经典区间型dp? 目描述 Description 如有n堆石子排成一燎,每堆石子有直由∝量w[i1, 个次合并以和窍并相邻的两堆石子我 一次合并的代价为两堆石子(亓亢蛍[i1+w[i+[1。问安排怎样的合并顺序从能够使 得总合并代价达到最小
?

孰描述 Input Description 第一行是直由数,n(nt;=100)。┶二行起n节数,w1,w2...wn ind t;=100095)

孰描述 Output Description 输直由数,示该最小合并代价


将例输入 Sample Input 5

4 1dd4

例输入 Sample Output 8

18

数据范围及提示ata.g Size &ple; Hi l?无 数分析下花费吧

花费是由两堆石子成的图,即呛 ct,*[i][j]=w[i1+w[i+[1+ +w[j-11+w[j]

一陋合并i-j堆表守须要先合并i~k堆和k+1~j堆表可以得出递推式 js(i,j)= w[i1=Maj

n';( js(i,i) '1js(i+1,j) …… js(i,j-1) '1js(j,j) )+ct,*[i][j]

i≠j

然后怎么办

递归处理?

W
?我耸百分百骋间你信?

WA
?这节课涯文啥?态规划_桶开节沃乳,技?P.S.:这数题写代码还是稍微有点难度图,以时写不出来的童 许可以考虑放(mei)弃(tian)本(yi)题(ndan)

能量项链(noip2006)

目描述 Description 纫?在Mset星球,请个节Mset人都随身佩带着一串能量项链。线活链 上N行颗能量珠。能量珠是行颗有头岁技与尾岁技(樽游艺庑┍ 夹对应着某个数数,。并且,囤每相邻的两颗¢子我前有颗¢子 的尾岁技一定等于后行颗¢子的头岁技。因为』有这样,通过吸 盘(吸盘是Mset人吸收能量?一种器官)整作用R这两颗¢子才 能聚合成一颗¢子我时,释放除以选被吸盘吸收的溶量。午果前 一颗能量珠的头岁技为m,尾岁技为r,后行颗能量珠的头岁技为r, 尾岁技为n所则聚合后释放的溶量为m*r*n(Mset单位),新产生 的¢子的头岁技为m,尾岁技为n
? 需要,也Mset人就用吸盘夹住相邻的两颗¢子我通过聚合得到能 量,直到活链上是遥下一颗¢子为」。显然,不同的聚合顺序得 底材总溶量是能同的,请你设计条节聚合顺序,使一串活链释放 出的总溶量大。
?
例如贪设N=4,4颗¢子的头岁技与尾岁技依次为(2,3) (3,5) (5, 级玩意儿,拿这数代替下吧009) (10表2 得怯2眉呛浓捠靖昧娇拧樽拥木酆喜僮模(j⊕k)示该诙㳠,k两颗¢子聚合后示低放的溶量。向第4、1两颗¢子聚合后 释放的溶量为呛 (4⊕1)00)*2*3=60?暂时找不到能量项链这种高

这行串活链可以得到最优,的直由聚合顺序示低放的总溶量 起((4⊕1)⊕2)⊕3)00)*2*3+0)*3*5+0)*5*10=710?

孰描述 Output Description ?』有直是,一个课数数,E(E≤2.1*109),为条节最优聚合顺序示低放的总溶量
?

例输入 Sample Input 5

4

2 3 8 10

例输入 Sample Output 8

710沂

数据范围及提示ata.g Size &ple; Hi l?无 数
?众所皆知,丝带活链是环形的,虏就是耍,这数题相比起石 子归并问题来耍,变成了环形摆放我怎么办呢poi

WA

?用脑子想一想,可以想出呛即使是个或斗合并,虏不会合并 超过2圈宦簿褪撬#梢园颜獯盍纯饕2倍长,读入释际进行预处 理,之后合并时只要出一在他中直点断开能得到的活链的长 大能量值就以选了

乘积大。
NOIP2000?
将目描述 Description 纫?今年是国际数学联盟确定的“200 狪O世界数学年‖也又恰逢我国著谬,学家华罗庚 先生诞辰90周年。线华罗庚先生的家乡江苏金坛,乳织了条场别开生面的,学智力 赛沟谜釱+1个部分的乘积能够为长。
? 时,也为了帮助选手能够正确理解题意有主持人还举了如下的直由例子呛 有直由字三串液2">, 当N=3,K=1时会有衷下两种分法
阂?1) 3*12=36
2) 31*2=62 这,也符合目描求找的滇果是魏2"*2=62 现在,请你帮助勉的好朋友XZ设计条节程序从找得正确的答案 ? 出描述 Input Description 第程序数做描有N辛绞牵阂?
将一行是有N婿选自然N(1,K(6≤N≤40表1≤K≤6)将一行起是个或长度为N数字三串
? ?

孰描述 Output Description 室?结果显该在屏幕,请相囤每做描也应孰描所找得的驻。乘积(行选自然N()。?
将例输入 Sample Input 5

4 22 73? 例输入 Sample Output 8?
将62 数据范围及提示ata.g Size &ple; Hi l?
将司题由于巳较垃请数据实际也巳较 ?胠ongogSngo即可通过 ?

这数题描求找用指定的乘号数量分开条节沃,将它变得尽能,大使先找递 推式:襛[i][j][k]=xle(a[i][i][135]*a[i+[1]j][135]……a[i][j-[1]135]*a[j][j][135])?
?a[i][j][k]的含义为呛从i到j冬有使用了k由乘号所产生的长。乘积9会可以 简化为a[i][k]1含义为从1到i段使用了k由乘号所产生的长。乘积 夹录到dp沃乳里进行态规划_途秃昧艘?
? ,的划分(NOIP2001)

将目描述 Description 如禁个数n分成k份,且每份能卖为空全挝意两种划分方案能卖相同(不考虑 顺序 礧A

?例如贪n=7,k=3,下面三种划分方案被认为是相同的 礧115?
?151
511


??问茵多少种曹同的分法
? ?

孰描述 Input Description

孰描贪n,k (6t;=1nt;=10200表2t;=10kt;=106)

孰描述 Output Description

孰描:个由数,表即不同的分法
?
将例输入 Sample Input 5

73

例输入 Sample Output 8

4

数据范围及提示ata.g Size &ple; Hi l?{四种分法为呛1,1,5;1,>,4;1,3,3;>,2,3;} ?

这数题描需要让人感底猎奇(← ←不要想歪)的态规划_陀 于每直由字的划分方式,们有以吗分为两种: 1.划分的滇果中有字三1的 2.划分的滇果中没有字三1的


?



囤每不耳生字三1的划分滇果,们有以吗忽略掉那节1,么,n层划分成m 部分茵多少种方法等于n-1划分成m-1部分茵多少种方法, 囤每不耳生字三1的划分滇果,们有N辛硖踔智伞崦畹陌旆
核谢植 生的字三统一减1,么,n n划分成m部分茵多少种方法等于n-m划分成m 部分茵多少种方法 dp[i][j]=dp[i-[1]j-[1+dp[i-j][j]?
? “ 总的来耍,区间型dp要比背包型
dp幕年些,以时下面来点简♂单 的dp?”? 序列型dp摇狪O传说中最水的dp? 长路上升子序列

目描述 Description 纫?
将例输入 Sample Input 5

给条节沃乳a 10a2 ...od=R睁到最长的上 升撞阌序列ablt;=Nab2t;=1 .. t;=1abk所他中 blt;=Nb2t;=1..bk ? 出描长度即可 礧A5 93627 例输入 Sample Output 8


??出描述 Input Description

3将一行是一直由数,N 第二行起 ,N由数,报N t;=1 Da50。 出描述 Output Description

数据范围及提示ata.g Size &ple; Hi l?【例输解释
W
?最长不下撞阌序列为3,6,7

孰描K的极大值表即最长不下撞阌序列的 长度? “
这题还用讲么

WRT?”?我的做法是开条节dp沃乳,技
目描述 Description 纫?N位同学站成一排我乐…,K我他有的 身高分别为T1,T2, 琓K我 则他有的身高满足Tlt;=N...t;=NTi>Ti+[>…>TK<=N⁢=10K 第勉的任务是我已知所有N位同学的身高,计爽最少需要几位同学出燎,以选使得拢下 的同学排成合唱队形 第入描述 Input Description 第入描文件chorusnse的祷行是数直由数,N(2t;=10lt;=100)。表示该同学的总尸。祷行 行有n节数,?眉崭穹指簦趇由数,Ti(13lm==N&Tit;=10230)是第i位同学的身高(厘 米 第孰描述 Output Description


??

孰描文件chorusntap包括行是,这行是只包夯直由数,表际是最少需要几位同学出燎
? ?

例输入 Sample Input 5

12 814 814 50 200 160 130 1926 20 例输入 Sample Output 8




4 数据范围及提示ata.g Size &ple; Hi l?

囤每50%的字据,保证有nt;=1020;

囤每部? ? 算法?
?这道目求找百摆成合♂唱队形表即前面一段单调递晕所后面 一段单调下撞的序列
?于是就有了爽1:暴枚举队伍中的最高,1=昂业亩游榉直 求长路上升子序列和大长下撞阌序列,间复杂度 为O(n*2*n^2)=O(n^3)
虽然不超,也但是敲起代码来有点麻烦额 
? 算法禾耙
?既然要枚举个直由,1不如直接求一淘个节点为开头或结尾 的长路上升和大长下撞阌序列,然后直接rm>遍遍睁一二者相 加的长大值再减去1(因为队伍只有直由最高, )即可~
代码简化了不少,而且间复杂度 窝沟琢薕(n^2)!


? “ 大家都道长严格上升子序列吧~都是大水饽堪蓗
总N行┎缓玫脑じ卸  健币? “ 但是午果将两者结合起来呢

WA那就是LCIS(LSngt wimpan_anpueatesdeg Subsuivence)—IO长 路公共严格上升子序列a
果然来了  健币?
将目描述 Description 纫?鞋大妈数奶牛线小沐沐的熏陶下开始研究息学目描。 沐沐厦抛奶牛研究了长路上升子 序列我再让他们研究了长路公共阌序列,现在又让他们要研究长路公共上升子序列了 ? 沐沐耍,囤每两由串A,B全午果它有都包夯直段位臵不一定连续的字三,且字三是严 格递晕的,么,称这行段手三是两由串的公共上升子串要而所有的公共上升子串中最长 的际是最路公共上升子串了 ?WA奶牛半懂断十要 沐沐要你来告诉奶牛什么是最路公共上升子串。不过1只要告诉奶牛 点(ざ染鸵匝× ?W出描述 Input Description


将一行是1,示该A,B(ざ 第二行起从懂A 第二三是,串B 第孰描述 Output Description




孰描长度 狄?
将例输入 Sample Input 5

4 2213将2 73
例输入 Sample Output 8


将2 数据范围及提示ata.g Size &ple; Hi l lt;=N<=10300表A,B中的手三不超过xlenSngi l


?? 这题说实话我辈不大会  不过我还得硬着头皮讲 
?好吧正题开始:dp[i1]j]示该a串前i由数和b串前j由数且以b 串第j由数结尾的长路公共严格上升子序列(好绕口 颓稻 叫LCIS了)LCIS的长度也然后根据长路公共阌序列条骡的状态 转移方程式可以得出司题的状态转移方程式:?dp[i][j]=dp[i-[1]j]
dp[i][j]=xle(dp[i-[1]k1)+?
?(a[i]!=b]j])?(a[i]==b]j]&ple;&ple;a[k]t;=Nb]j])?
应该睬一很难懂 畛鋎p沃乳不用我教了吧  恭喜各位完成序列型dp~


? 棋盘型dp易钪誦oss前动长后行节dp?
将过河卒?大水目腔枚

A ,有直由过河卒要需要到底目标 B , 第卒行走规则:可以向下、或者弦走。同 间在棋盘的值挝冶点有直由对方的马 (如上图的C,签,该马所在的和边所 有跳跃一步可达的和称为对方马的控制 , 道缟贤 C ,的值马可以控制 9 节 ,迁图中的P1,P2 … P8 和 C)。卒不 能通过对方马的控制,


?棋盘用坐标示该,A ,(0表。 , (met)(met狾(不超过 20 的数,表并 由键盘孰描),同样马的位臵坐标是需要 给出的(约定: C不等于A,时,C不等 于B)。现在求找你计爽最翠从 A ,能 够到达 B ,值露上(跏
lt;=N&mett;=1005?
?馓馓?卒到底直由格子的方式只有两种: 1.从它左边的今子过来 2.从它上面的今子过来 么,n驳降渍馐褡拥姆椒ㄊ=到底上 面格子的方法数+到底左边格子的方法 数?耶水就过了呗?
?锸坑卫
NOIP94
7

目描述 Description 如设有直由n*m的棋盘(2≤n≤50,>≤m≤50),如下 书在每棋盘的有直由⌒国象棋马 第规定: 1)马周卖走日字 2)马周卖弦走跳 问给定点,x1,y1和终,x2,y2,求一马从x1,y1 Sa发到x2,y2的合法6上条尸。淙朊枋 Input Description 第一行是鲅「鍪齨和m诙衅4节个数x1,y1,x2,y2 出描述 Output Description 输出最方案, 例输入 Sample Input 5 30 30 15 8 11 5 例输入 Sample Output 862

数据范围及提示ata.g Size &ple; Hi l 2t;=10mett;=1050?
馓?不臼是誓改状态转移方程式啊 这数还不会的话还要不要来Loi啊

和过河卒有 什么区别额? 传纸条(NOIP2008)

目描述 Description 纫?小渊和小轩一好朋友也是同班同学我他有在腔起总N刑改芡甑幕疤狻R淮嗡刂释卣够疃牵 上同学安排做成一个m行n列的矩阵使而小渊和小轩被安排在矩阵对角线的两端,因此,他有就 无法直接交谈了 ?兄运数浊我他有可以通过传纸条来进行交流只式条要经由许多同学传到对方 手,您小渊坐在矩阵动丑上角我坐标(1,1),小轩坐在矩阵动右下浊我坐标(m,n 荡有≡ù 轩?式条只可以向下或者弦走传递,从小轩传给小渊?式条只可以向上或者弦左传递。湎呋疃兄牵≡ㄏM⌒菀徽攀教酰保M⌒馗础0嗬锔鼋谕Ф伎梢 帮他有传递,但只会帮他有一次,虏就是耍午果此阅哆小渊递给小轩式条的时候帮忙,么,在 轩递给小渊?时候就不会再帮忙。反之亦然。
还有一件事情需要耽意有全班个节同学愿意帮忙的好感度有高有低(耽意雍小渊和小轩的好心 程度没有定义,茧描时用0示该),以选颐个的0-095动吃然N(来示该,数泽类示该越好心。 渊和小轩希望尽能,找好心程度高D同学来帮忙传纸条表即睁到来回两条传递径,使路得这两 路径,上同学的好心程度只和大。
?现在,请你帮助小渊和小轩睁到这样?两条径,


?出描述 Input Description

入描夷祷行是N婿选用颊格隔开整数,m和=R示该班里有m行n列(lt;=N&m,nt;=1050)
接下来的m行是个或m*e的矩阵使矩阵中第i行j列的数,本该坐在第i行j列的学生的好心程度。涿啃械膎节数,之间用颊格隔开
? ?

孰描述 Output Description 室?孰描共一是,包夯直由数,表示该来回两条路上参与传递式条的学生的好心程度之和的长大值。?
将例输入 Sample Input 5

33 039 285 570 例输入 Sample Output 8 34 数据范围及提示ata.g Size &ple; Hi l 30%数字据满足:lt;=N&m,nt;=1010?095%数字据满足:lt;=N&m,nt;=1050?0 3 9 2 125 5 260? “
?大家有什么想法呢

WA”?
将首先也们有以吗轻四图得到条由错误动算法暴跑两遍字三角形,对很明稀这数算 法是错误动:蛤为有能,出现重复值露上,么,n舱馐惴ň兔挥昧耍

当然睬一的!们有这数算法的浑法是魏先找成好械最大高D露上,然后归连1找 好械最次高D露上,但是这样会导致出现重复露上,么,们有稍微?一下这数算 法:让两人时,找好心最大高D露上 么不臼乱♂套了了?

! 以时我们有要?一下这数方法
喝昧饺耸保幼笊辖堑接蚁伦牵徽庋?话只要 两人不到底突直由格子上(点,和终,除外),么,这条径,臼是可行的! dp[i][j][k][l]分别夹录式条A和纸条B所在的位臵我转移时考虑4种情况呛 1.A纸条弦走,B纸条也弦走?
?
?? ??
??2.A纸条弦走,B纸条向下
3.A纸条弦下,B纸条也弦下 4.A纸条弦下,B纸条弦走? “
可是还能再优化睬一?

WA”矣捎诹秸攀教跻贫慕褡邮窍嗤模允彼幸欢ㄔ谕恢碧跣毕撸胍允眃p沃乳 优化到三维:i,j,k分别示该走怪的今子数1纸条A所在的是,纸条B所在的是,这样, 三维沃乳就以选本该最创态垃n捕一辜跞チ诵矶辔抻玫淖刺瑍

最終鬼畜道化師ドナルドール?M【リアレン ジ
W
西形DP&ple;状压DP&ple;DP骗分 (仅简单讲解)

??顾名思义,在树上进行的DP 郑州学媳续应该近筒过…… 由于这行部分的目描我辈不太会请以时个直部分只讲一题……
?西形DP?
将目描述 Description 纫?Ul",大学有N由“,立枢号为1~N 邓杏写ナ艄叵#簿褪撬K械墓叵>拖裥 棵冈校长为根?誓,父点可际是子点可?时接上司。个节“,有直由快乐指尸。现湎哂懈鲋苣昵煅缁崆肭笳矣牖帷埃目炖种甘ぁ
?但是,没有“,愿和直接上司 一起与会。淙朊枋 Input Description 狄?
将一行是直由数,N <=N<=106)。酉吕葱。,第i+1是本该i号“,的快乐指尸Ri。(-128t;=10Rit;=107|1y接下来-1是,每行入描一对数,L,K。本该K是L?时接上司。 长后行是入描0,5
? 出描述 Output Description

述最大值的快乐指尸。?没有上司的舞会?
教馓馓馓馓 ?





将例输入 Sample Input 5
7 ??????3 1123 64 74 18 15 00 例输入 Sample Output 865?
?
?庹獾滥康钠兰妒荄ian_ad钻石

度图题…… 轿以趺纯幢膊皇莕oip提搁目 ? 不过我还一得讲……
囤每直由“,来耍,他只有两种状态:参加1不参加腔有些将人是能是想底状压那边去了……看本题数据范围6)“ ? 么,n馓馐悄苁蔷筒豢山饬四

WA嘛,这胁是道很经典?誓形DP目描了?獠蝗晃兑稣獾滥俊 ? 囤每直由“,来耍,他要么垃n惨床焕慈绻慈矗?颐的下属就冶由都能敢来……(这G废话谦午果勉的班主任天 天去逛银座,拇,你还敢去银座?

)?
于是我们有以选这样做:?为啥底了关键时候就翻页  降比灰匝〗庥
??开手乳dp[6)[2]1dp[i][0]代表i号“,不来间能得到的快乐郑, dp[i][1]则代表i号“,来间能得到的长。快乐郑 当这数人不来间,囤颐的下属是没有影响的,或者耍,他的下属爱来垃n测不爱来不来……以时以得:dp[i1]0]=xle(dp[k][,g.dp[k][[1),这里的k 代表他的所有下属。因为他不垃n菜南率衾床焕炊际牵叶谝玫纳 司又没有影响请以时们有以吗心
?的最大的可; dp[i][1]=dp[k][0]+a[i],k依然代表他的所有下属。午果他来了那么,他 的下属就都能萝垃n菜允本褪撬南率羧寄芾吹某ぁ?炖种<由纤 快乐郑
? 这样就好做了~ S一遍遍求一所有人数快乐郑,以选证媚,长后产生的形,一定是行棵誓, 以时我只要长后找成这数公司的超级大BOSS表并且找成他来和不来两由 状态快乐郑大的可那节,这数题就AC啦~ P.S.:简滞累人?
?
??


将旅行商问题m即TSP问题(Travelldeg Sasheman opeblet)又译为旅行 推销员问题、货郎担问题m数塔学领域中著谬问题之一。假设有直由旅 行商人要拜访n节城是,他守须择向嗽湿到的露上,露上(拗剖敲鼋诔 署周卖拜访一次,而且长后歇回医原来出发的城是。露上(裣蚰勘晔 求找得的露上路程为所有露上之中的最小郑
? 这选有点难懂额  没关希,codevs上就有这数题a
? 桃?状压DP—IOTSP问题?
将目描述 Description 纫?有直由送外点羌,饮手的有n份订单,他要把n份东西我分别送达n节不同的户端?手的。n节獠煌幕Ф朔直鹪1~n节枢号的城是智。送外点羌从0号城是发,在然后n节城是都湿到一次 (个或城是以选走多次),长后还要回医0,(他的单位),请问最短间复市多少。现在茄知 挝意两或城是?时接通6?时间。淙朊枋 Input Description 狄?
将一行是直由数数,n (lt;=N&mt;=1005) 接下来是个或(m+1)*(m+1)的矩阵使矩阵中的字均O(不超过0)0〉淖>卣蠖痠行j列表 的授i-[号城是和j-[号城是之间时接通6?时间。当然城是a到城是b?时接通6时间和城是b 底城是a?时接通6时间不一定相同,虏就是耍道路都是单向数 第孰描述 Output Description




个课数数,示该最少花费?时间?
将例输入 Sample Input 5

3 0 ?3 0 ?0 ?0 7 ?0 ? 0 ?0 ?0 7 ?0 0 例输入 Sample Output 8




8
数据范围及提示ata.g Size &ple; Hi l?桃?lt;=N&mt;=1005 ??这数题图特点是魏N特别恰
降比唬琋午果不小?话状压是宗不了数 囱沟哪棵枋荼榘悴换岢 15,一会儿纳际道
WA
将没什么办法
1只能枚举这数感教不好好,请考能上大学,长大了只能送 外点羌倒霉孩子经过了哪几选城是来进行状态转移我反正个或城是只有 两种状态:经过和富有经过,么,n灿忻挥邢肫鸷透詹拍悄壳谎?地方

W开15维沃乳技

?




!?15维沃乳我看你怎么维护! 既然已经压成羹进制数了,为什么不再转成十进制数来开手乳呢

WA
将没错,这际是状压dp的字据特别恰的原因a
教诿空馐鈇颐怯2甘裁窗旆

WA
将开手乳dp[65536][16]1dp[i][j]的含义是,经过了!@#¥% &ple;*城是, 目前处于第j由城市时走怪的最短距离 ず笮枰业氖蔷怂械 城是后回医祷行由城市时的最短距离  代码实现的话用位运爽吧  A
将此题无节操?
将目描述 Description 纫?王庚是……(此处略去谊些无用息学 ) 地鼠游戏是个项需要反应巳文和隔捷判断力的游戏。游戏开始间,会在地板上一下子冒成很多地鼠来全位后等你用榔头去敲击这些地鼠请个节地鼠被敲击 后使将会增加相应的游戏分郑
?问题是这些地鼠不会傻傻地等你去敲击我它总会在冒成一会时间后又钻医地板下面去(而且再辈不上来醛,个节地鼠冒成 后停零羌时间能,是能同的,而且个节地鼠被敲击后增加的游戏分郑也可,是能同也为了胜描,游戏参与者就守须根据个节地鼠图特斜我有择向地尽撵敲 换个些地鼠请使得总的得分长。
? 这数极具挑战性的游戏王庚特别隙鲜,长近他经常线星期天上午玩这数游戏,慢慢地他不但敲击巳文越来越快(敲击个节地鼠
枰际笔1秒醛,而 且他还发现了游戏?一些特征我那就是个次游戏重新开始后使某个地鼠冒成来后停零羌时间都是固定的,而且他技? 于是我他每一次游戏开始后总溶有次序守择向敲击不同的地鼠请保证一次得到最的可总分郑
??

孰描述 Input Description

孰描包夯3。,第一是包夯直由数,n(lt;=N&mt;=1000。┦靖糜衝节地鼠从地上冒成来,第行起n节用颊格分隔的数,本该个节地鼠冒成后停零羌时间,第三 行n节用颊格分隔的数,本该个节地鼠被敲击后会增加的分郑(t;=100)。 得啃兄械趇由数都示该第i由地鼠的盛学 ??

孰描述 Output Description

孰描』有直是个由数,表示该王庚所能获得的最的游戏总分郑
??

例输入 Sample Input 5

5A5 3 6 ? 4 7 9 2 1 5

例输入 Sample Output 8

地鼠游戏?2
?
WRT我原版的,据范围是200)。浣馐切
?+堆表间复杂度 蜲(Ng('N) 但是dp周卖做到O(n^2) 不过,这是codevs嘛~,这尸据简滞太良心啦hhhWA
将这数题是用DP骗过去的  解??开烃维dp沃乳,dp[i][j]是在第i只地鼠请间复已过去j描时以吗拿底材驻 大得分请开始先排遍序从位后像背包腔样转移就行啦~


W腾每有些目描来耍,dp可,能是珍解也但是,dp可以骗分我有些目的, 据就是30%暴力,60%DP,195%珍解也dp全对的题也是noip每年必考 的容双n菜允保Ш肈P,囤大家的帮助是非常的可~

终于讲完了!
? 么,n珼P部分就告一段落吧使隙鲜刷(zi)题
(nve)的同(dou)学(M)午果需要目描的话谦会 给你找遍些喜(jie)闻(cao)乐(sang)见(shi)的目描 的
/div>

相关文章:
信息学奥赛动态规划练习
石室中学信息学奥赛动态规划练习题目(101211) 整理:曾贵胜 1、数字游戏(NOIP2003 普及组) (gamee.pas)【问题描述】丁丁最近沉迷于一个数字游戏之中。这个游戏看似...
信息学奥赛——算法入门教程
信息学奥赛——算法入门教程_其它语言学习_外语学习_教育专区。全国青少年信息学...分治法、动态规划法等算法中都可以使用递归思想来实现, 从而使编写的程序更加...
信息学奥赛——树型动态规划的实例分析
信息学奥赛——树型动态规划的实例分析_一年级语文_语文_小学教育_教育专区。信息...态规划有二种方法既顺推与逆推,而树型动态规划是建立在树上的,所以也相应的...
信息学奥赛——动态规划法专题
信息学奥赛——动态规划法专题信息学奥赛——动态规划法专题隐藏>> 全国青少年信息学奥林匹克联赛动态规划算法 动态规划算法 一,动态规划的定义在现实生活中,有一类活...
2011年信息学奥赛 动态规划题模拟(奥赛精选系列)_免费...
2011年信息学奥赛 动态规划题模拟(奥赛精选系列)2011年信息学奥赛 动态规划题模拟...输出: 只需输出一个整数,表示 2 条路径上取得的最大的和。 4 6 样例: ...
在信息学奥赛辅导中我的几点做法
信息学奥赛辅导中我的几点做法_学科竞赛_初中教育_教育专区。在信息学奥赛辅导...动态规划等;初等组合:这是信息学解 题的思维方式;图论:主要是基础概念方面的,...
全国信息学奥赛NOI培训教程(Pascal 2016)
什么叫动态规划 第二章 用动态规划解题第 2 页共 230 页 全国信息学奥赛 ...的学科竞赛活动,重在培养学生能力,使得 有潜质有才华的学生在竞赛活动中锻炼和...
信息学奥赛辅导教程
信息学奥赛辅导教程(PASCAL 语言) 第四章 动态规划的递归函数法 第五章 动态...的学科竞赛活动,重在培养学生能力,使得 有潜质有才华的学生在竞赛活动中锻炼和...
《奥赛兵法》--动态规划讲解
动态规划例题讲解 64页 免费 动态规划(奥赛完整版本) 23页 免费 信息学奥赛—...对选手运用动态规划知识的要求也越来越高,已经 不再停留于简单的递推和建模上...
算法在信息学奥赛中的应用 (基础篇)
算法在信息学奥赛中的应用 (基础篇)_理学_高等教育_教育专区。算法在信息学...动态规划法就是一种以牺牲空间换取时间的有效算法.对于空间因素,视 题目的要求...
更多相关标签:
初中信息学奥赛试题 | 初中信息学奥赛 | 高中信息学奥赛 | 高中信息学奥赛试题 | 信息学奥赛 | 信息学奥赛一本通 | 信息学奥赛一本通 pdf | 小学信息学奥赛 |