每天一题:P1133教主的花园

看CSDN上没人写关于这题的博客(害得我在洛谷上看了半天题解),与似乎我就写一篇

题目描述


教主有着一个环形的花园,他想在花园周围均匀地种上 n 棵树,但是教主花园的土壤很特别,每个位置适合种的树都不一样,一些树可能会因为不适合这个位置的土壤而损失观赏价值。

教主最喜欢 3 种树,这 3 种树的高度分别为 10,20,30。教主希望这一圈树种得有层次感,所以任何一个位置的树要比它相邻的两棵树的高度都高或者都低,并且在此条件下,教主想要你设计出一套方案,使得观赏价值之和最高。

输入格式

第一行为一个正整数 n,表示需要种的树的棵树。

接下来 nn 行,每行 33 个不超过 10000 的正整数 ai​,bi​,ci​,按顺时针顺序表示了第 ii 个位置种高度为 10,20,30 的树能获得的观赏价值。

第 ii 个位置的树与第 i+1 个位置的树相邻,特别地,第 1 个位置的树与第 n 个位置的树相邻。

输出格式

一个正整数,为最大的观赏价值和。

输入输出样例

输入 #1

4 
1 3 2 
3 1 2 
3 1 2 
3 1 2


输出 #1

11

题目传送门

题目传送门

题目解析

啊,这道题实际上只是一个非常容易理解的题目,教主有一个环形花园和三种树,啊这三种树有高有矮,高度分别为10、20、30,现在他想让树看上去比较整齐,就规定,一棵树左右两旁的树必须严格矮于或严格高于这棵树(教主强迫症啊),还有,教主的环形花园中,不同的位置种不同的树观赏价值也不一样,你可以把它理解成n个花盆环成一圈,每个花盆土质不同,种不同种类的树也有不同的观赏价值,现求在整齐的情况下,最大的观赏价值。

解题算法

既然是求最值,那么肯定想到DP和贪心,不过这题明显是贪心解决不了的问题,那么就用DP。

如何解题

很显然,对于每一个地方,只有三种情况,要么,这是高度为10的树,那它后面只能是高度为20或30的树,取其观赏价值最大值,而如果他高度为20,那么根据前面的情况而定,如果高度为30,那么只能是高度为10或20的树了,取其观赏价值最大值,这里头和尾也得讨论一下,我们直接枚举头一个是哪种树,对后面的就直接做个特判就可以了

代码

想要代码?没门~自己理解了思路才可以真正做出来。实际上是作者源文件找不到了,重打一遍又嫌累,所以不放代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值