pku + 2181

     郁闷!! 这道题其实是一道很水的! 当然是我明白以后才认识到的! 
       这道题, 其实 所有的要不知道道 奇偶时间 是吃还是不吃的好,所以 开一个三维数组 分别表示 分别表示 奇数偶数吃和不吃!  主要是 判断上一次是吃好还是不吃的好!
       还有今天学会 三维数组用法!! 咳 我还有很长一段路要走! 加油!!!
   
 1 1 #include <iostream>
 2  2 #include <vector>
 3  3 #include <string>
 4  4 #include <new>
 5  5 #include <algorithm>
 6  6 using namespace std;
 7  7 
 8  8 int s1[150001][2][2];
 9  9 
10 10 
11 11 int main()
12 12 {
13 13     int s2[150001];
14 14     int num;
15 15     cin >> num;
16 16     for ( int i = 0; i != num; ++i )
17 17         scanf ( "%d",&s2[i] );
18 18     for ( int i = 1; i <= num; ++i )
19 19     {
20 20         s1[i][0][0= max( s1[i-1][0][0],s1[i-1][0][1] ); // 偶数时间 没有吃
21 21         s1[i][0][1= max( s1[i-1][1][0],s1[i-1][1][1] ) - s2[i-1]; // 偶数时间 吃了
22 22         s1[i][1][0= max( s1[i-1][1][0],s1[i-1][1][1] ); // 奇数时间 不吃
23 23         s1[i][1][1= max( s1[i-1][0][0],s1[i-1][0][1] ) + s2[i-1];
24 24     }
25 25     cout << max( max( s1[num][0][0],s1[num][0][1] ),max( s1[num][1][0],s1[num][1][1] )  ) << endl;
26 26 }
27 27 
 

posted on 2010-06-06 21:56 haozi 阅读(126) 评论(0)  编辑 收藏 引用 所属分类: 动态规划


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2010年6月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

导航

统计

常用链接

留言簿

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜