首页 > 其他 > 详细

[Codevs 1421]秋静叶&秋穣子(最大-最小博弈)

时间:2015-04-07 00:32:23      阅读:267      评论:0      收藏:0      [点我收藏+]

题目:http://codevs.cn/problem/1421/

分析:有向树上的最大-最小博弈

先手与后手的策略不同:

先手A:让对方取得尽量少的前提下,自己取得尽量大

后手B:让自己取得尽量多的前提下,对方取得尽量少

设f[x][0]表示以x的子树的先手最优值,f[x][1]表示以x的子树的后手最优值,注意这里的先手、后手是相对而言的

那么树形DP

1、若x节点的深度为奇数,此时轮到A取数

  f[x][0]=a[x]+f[k][1]

  f[x][1]=f[k][0]

  其中k是x的儿子节点中max(f[k][0])取最大时候的k,若f[k][0]相同,则取f[k][1]最小的

  因为x的深度为奇数,所以A是以x为根的子树的先手,B是以x为根的子树的后手;B是以所有x的儿子为根的子树的先手,而A则是以所有x的儿子为根的子树的后手

  k的深度是偶数,所以k一定是B取,于是按照B的策略,B要让f[k][0]最多的前提下,让f[k][1]最小,这样得到的k作为B的决策,这就是第一个式子的含义

  而B作为x为根节点的子树的后手,它不能取x点的值,所以f[x][1]=f[k][0]

2、若x节点的深度为偶数,此时轮到B取数

  f[x][0]=a[x]+f[k][1]

  f[x][1]=f[k][0]

  其中k是x的儿子节点中min(f[k][1])取最小时候的k,若f[k][1]相同,则取f[k][0]最大的

  含义同理

[Codevs 1421]秋静叶&秋穣子(最大-最小博弈)

原文:http://www.cnblogs.com/wmrv587/p/4396977.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!