HDU 2845 Beans
2014-02-24 20:12
453 查看
题目链接~~>
做题感悟:其实有些题看着不好搞,但是只要你狠下心,有那种不搞定它不罢休的精神,那什么题也不算题了,自己完全搞定和百度看题解完全不一样的感觉。
解题思路:开始我把所有和都存下来,每一个点都从前往后找最优值,很明显超时。
动态方程:dp[ i ] = max( dp[ i -1 ] ,dp[ i - 2 ] + t ) ( t 是输入的第 i 个数)。
代码:
做题感悟:其实有些题看着不好搞,但是只要你狠下心,有那种不搞定它不罢休的精神,那什么题也不算题了,自己完全搞定和百度看题解完全不一样的感觉。
解题思路:开始我把所有和都存下来,每一个点都从前往后找最优值,很明显超时。
动态方程:dp[ i ] = max( dp[ i -1 ] ,dp[ i - 2 ] + t ) ( t 是输入的第 i 个数)。
代码:
#include<stdio.h> #include<iostream> #include<map> #include<string> #include<string.h> #include<stdlib.h> #include<math.h> #include<queue> #include<algorithm> using namespace std ; const int MX = 200005 ; int b[MX],g[MX] ; int max(int x,int y) { return x > y ? x : y ; } int main() { int n,m ; while(~scanf("%d%d",&n,&m)) { memset(g,0,sizeof(g)) ; memset(b,0,sizeof(b)) ; int x ; for(int i=1 ;i<=n ;i++) { scanf("%d",&g[1]) ; for(int j=2 ;j<=m ;j++) { scanf("%d",&x) ; g[j]=max(g[j-1],g[j-2]+x) ; } b[i]=g[m] ; } for(int i=1 ;i<=n ;i++) b[i]=max(b[i-1],b[i-2]+b[i]) ; printf("%d\n",b ) ; } return 0 ; }
相关文章推荐
- spring hibernate
- SQL SERVER的表锁
- IEnumerator对象有什么呢?
- Bee-Framework初探
- 【c++】PAT (Advanced Level)1010. Radix (25)
- 深入理解linux网络技术内幕--通知链
- UILable 的 属性设置
- LightOJ 1422 Halloween Costumes 动态规划
- ubuntu 12.04中安装配置svn服务器
- 关于Struts2的一点知识01
- OCP-1Z0-053-V13.02-691题
- SQLServer系统函数(2)_字符串函数
- ATL与WTL中CString的使用, 利用ATLCString获得窗口的文字.
- WINCE6.0中断实验总结
- CSS网页宽度的几个方案
- 二维码生成
- zoj 1094 Matrix Chain Multiplication
- 自己动手弄基于QT5和directx11的简单粒子编辑器v0.1(一个编辑器,一个更新器,一个linux服务端程序)
- nginx---HTTP模块
- HDU 1396 && ZJU 1629