POJ 1463 Strategic game

  好久没有单独开贴写解题报告了,这是昨天队里DIY的一道题。题意是给一颗树,问最少在多少个根节点上放上哨兵能监视整棵树。

无非就是枚举根节点,选择放还是不放。

dp[root][0]表示root节点不放哨兵,则root->v上都要放上哨兵。dp[root][0] = sum(dp[root->v][1]);

dp[root][1]表示root节点放哨兵,则root->v节点上取放或者不放的最小值,dp[root][1] = sum(min(dp[root->v][0], dp[root->v][1]));

 

ps:当时纠结在无向图上了,找不到根节点,所以也就没敢继续想。其实只需要建有向图就可以,转移方程里边已经把无向边这种情况包括了。找如度为0的点作为整棵数的root节点,然后记忆华搜索。。。确实是一道很水的树形dp,还没搞出来,被队长鄙视了。。。被大家鄙视了。。。T_T。看来dp之流确实有经验之谈,多积累吧。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值