码迷,mamicode.com
首页 > 其他好文 > 详细

17.11.4 矩阵取数游戏

时间:2017-11-04 13:16:41      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:==   开始   忘记   sed   value   ret   区间   游戏   order   

描述
帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n行*m列的矩阵,矩阵中的每个元素aij均为非负整数。游戏规则如下: 
1. 每次取数时须从每行各取走一个元素,共n个。m次后取完矩阵所有的元素; 
2. 每次取走的各个元素只能是该元素所在行的行首或行尾; 
3. 每次取数都有一个得分值,为每行取数的得分之和;每行取数的得分 = 被取走的元素值*i,其中i表示第i次取数(从1开始编号); 
4. 游戏结束总得分为m次取数得分之和。 
帅帅想请你帮忙写一个程序,对于任意矩阵,可以求出取数后的最大得分。

关于输入
包括n+1行; 
第一行为两个用空格隔开的整数n和m。 
第2~n+1行为n*m矩阵,其中每行有m个用单个空格隔开 

l<=n,m<=80,1<=aij<=1000

关于输出
仅包含1行,为一个整数,即输入矩阵取数后的最大的分。

例子输入
2 3

1 2 3
3 4 2
例子输出
34
技术分享
 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int n, m,a,b,sumlin=0,summax=0;
 6     cin >> n >> m;
 7     int max[81][81],num[81];
 8     for(int lin=1;lin<=n;lin++)
 9     {
10         for (int col = 1; col <= m; col++)
11             cin >> num[col];
12         for(int j=0;j<=m;j++)
13         for (int i = 0; i <= m - j; i++)
14         {
15             if (i == 0 && j == 0)
16                 max[i][j] = 0;
17             else if (i == 1 && j == 0)
18                 max[i][j] = num[1];
19             else if (i == 0 && j == 1)
20                 max[i][j] = num[m];
21             else
22             {
23                 if (i >= 1)
24                     a = max[i - 1][j] + num[i] * (i + j);
25                 else
26                     a = 0;
27                 if (j >= 1)
28                     b = max[i][j - 1] + num[m-j+1] * (i + j);
29                 else
30                     b = 0;
31                 max[i][j] = (((a) > (b)) ? (a) : (b));
32             }
33         }
34         sumlin = 0;
35         for (int i = 0; i <= m; i++)
36         {
37             if (max[i][m - i] > sumlin)
38                 sumlin = max[i][m - i];
39         }
40         summax += sumlin;
41     }
42     cout << summax << endl;
43     return 0;
44 }
View Code

小生第一次做dp类型的题……更不用说是区间dp了。

花了一个多小时去学习编写以及debug

debug的时候发现反而低级错误更多...

把n和m搞反……以及循环中忘记初始化值

还是要冷静

17.11.4 矩阵取数游戏

标签:==   开始   忘记   sed   value   ret   区间   游戏   order   

原文地址:http://www.cnblogs.com/yalphait/p/7782681.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!