vijos1470教主的后花园
来源:互联网 发布:ubuntu下配置lnmp 编辑:程序博客网 时间:2024/04/29 09:39
这道题本来看见有环,以为和环有关,要拆环,后来发现根本不用,这一个的状态只和前一个有关,只会影响后一个,所以一遍推过去就好啦。。。f[i][j][k]表示前i个,第i个种第j种树(10,20,30),k表示比前一个高(0),还是矮(1)。这里我用了一个很笨的方法来处理第一个与第N个的关系……就是硬性规定第一个种什么样的树,分四种情况10比n矮的,20比n高,20比n矮,30比n高,分别比较答案。代码:
#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int high[110000][5],f[110000][5][2],ans,n;int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d%d%d",&high[i][1],&high[i][2],&high[i][3]); memset(f,0,sizeof(f)); f[1][1][1]=high[1][1];//算第一种情况 for(int i=2;i<=n;i++){ f[i][1][1]=max(f[i-1][2][0],f[i-1][3][0])+high[i][1]; f[i][2][1]=f[i-1][3][0]+high[i][2]; f[i][2][0]=f[i-1][1][1]+high[i][2]; f[i][3][0]=max(f[i-1][2][1],f[i-1][1][1])+high[i][3]; } ans=max(ans,max(f[n][2][0],f[n][3][0])); memset(f,0,sizeof(f)); f[1][2][1]=high[1][2];//算第二种情况 for(int i=2;i<=n;i++){ f[i][1][1]=max(f[i-1][2][0],f[i-1][3][0])+high[i][1]; f[i][2][1]=f[i-1][3][0]+high[i][2]; f[i][2][0]=f[i-1][1][1]+high[i][2]; f[i][3][0]=max(f[i-1][2][1],f[i-1][1][1])+high[i][3]; } ans=max(ans,f[n][3][0]); memset(f,0,sizeof(f)); f[1][2][0]=high[1][2];//算第三种情况 for(int i=2;i<=n;i++){ f[i][1][1]=max(f[i-1][2][0],f[i-1][3][0])+high[i][1]; f[i][2][1]=f[i-1][3][0]+high[i][2]; f[i][2][0]=f[i-1][1][1]+high[i][2]; f[i][3][0]=max(f[i-1][2][1],f[i-1][1][1])+high[i][3]; } ans=max(ans,f[n][1][1]); memset(f,0,sizeof(f)); f[1][3][0]=high[1][3];//算第四种情况 for(int i=2;i<=n;i++){ f[i][1][1]=max(f[i-1][2][0],f[i-1][3][0])+high[i][1]; f[i][2][1]=f[i-1][3][0]+high[i][2]; f[i][2][0]=f[i-1][1][1]+high[i][2]; f[i][3][0]=max(f[i-1][2][1],f[i-1][1][1])+high[i][3]; } ans=max(ans,max(f[n][1][1],f[n][2][1])); printf("%d",ans); return 0;}
2 0
- vijos1470教主的后花园
- Vijos 题目1470 教主的后花园(DP)
- 小易的后花园
- 卡农的后花园 www.ikanon.cn
- 我们的后花园需要如何保护
- 教主的花园
- 【枚举】教主的花园
- 你们的“教主”是谁?
- 3343: 教主的魔法
- [bzoj3343]教主的魔法
- bzoj3343: 教主的魔法
- 教主的花园
- BZOJ3343: 教主的魔法
- vijosP1471 教主的游乐场
- BZOJ3343: 教主的魔法
- 【bzoj3343】教主的魔法
- 3343: 教主的魔法
- bzoj3343 教主的魔法
- android:DDMS查看Threads
- 303. Range Sum Query - Immutable
- C++的STL库,vector sort排序时间复杂度 及常见容器比较
- hector mapping建图并保存
- SCPPO(二十五):从导数据看如何将一天过出多天的效果
- vijos1470教主的后花园
- 51nod-【1091 线段的重叠】
- 如何查看进程的线程数?
- 【sqlServer】Order By 报错:The ORDER BY clause is invalid in views, inline functions, derived tables
- oracle.dmp文件导入以及数据泵(Data Dump)技术的介绍
- git暂缓区的理解
- Jmeter--google plugin插件监控被测系统资源方法
- spymemcached和spring的整合
- Android冷启动优化