首页 > 代码库 > 二模08day2解题报告
二模08day2解题报告
T1.引爆炸弹(bomb)
N个炸弹构成一棵树,引爆一颗叶节点,会一直引爆到根节点。每颗炸弹有一个价值,求引爆k个炸弹的最大价值。
既然是一棵树,那么自然想到dp。所以先树形dp了一遍(由于可能出现多个根节点所以要预处理)。然后考虑到一个节点的最大价值的路径极有可能和另一路径重合导致重复,所以引入标记数组v[i],根据贪心思想,排排序取k个就好了。
T2.取石子(stone)
一圈石子,各有分数,得分判断如下:
然后可以贪心,证明取一块或两块权值最大的石头是最优的。
现取lzw大神证明如下:
假设取石头的顺序是按权值从大到小来取的,如果一个石头的权值是mid,它左边的石头权值是L,右边的石头权值是R;那么有 L,R>=mid. 再设它和左边的石头的距离为Ld,和右边的石头的距离为Rd,那么选了这个石头可以增加的分数为(Ld+Rd)*mid。 而左边的石头减少的分数为(Rd+1)*L,右边的石头减少的分数为(Ld+1)*R。显然减少的多。
然后就变成很水的题啦。
T3.化工厂装箱员(worker)
给出n个货物(有ABC三种),装箱员可以同时拿十个物品(手真大),每次装箱可以把手中同一种货物装完,然后从剩下物品中取等量的补上。求最少装箱次数。
类似于dp,但由于只能倒着来,所以采取dfs的方法,记忆化搜索。Dp(k,a,b,c)的参数表示处理到前k个物品后手中ABC物品的数量。值表示的是剩下的物品还需的次数。
那么可以枚举每次放A或B或C,从而得到当前dp(k,a,b,c)的值,就AC了。
二模08day2解题报告
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。