LG#P1005. [洛谷 P1005] [NOIP 2007 提高组] 矩阵取数游戏

提交0 通过0
通过率0%
时间限制1000ms
内存限制32MiB
    ID: 13607 传统题 1000ms 32MiB 尝试: 0 已通过: 0 难度: 普及+/提高- 上传者: 标签>信息学奥赛一本通提高篇动态规划第1章 区间类型动态规划题源:luogu动态规划 DP高精度区间 DP

题目描述

题目描述

帅帅经常和同学玩一个矩阵取数游戏:对于给定的n×mn \times m的矩阵,矩阵中每个元素aija_{ij}均为非负整数。游戏规则如下:

  1. 每次取数时必须从每行各取走一个元素,共n个,m次取完所有元素。
  2. 每次取走的各个元素只能是该元素所在行行首或行尾。
  3. 每次取数都有一个的分值,为每行取数得分之和,每行取数得分=被取走元素值×2i\times2^i,其中i表示第i次取数,从1开始计数。
  4. 游戏结束时,总得分为m次取数得分之和。

帅帅想让你帮忙写一个程序,对于任意矩阵,可以求出取数后的最大得分。

输入描述

输入包括n+1行。第一行两个空格隔开的正整数n,m接下来n行每行m个用空格隔开的整数。

输出描述

输出为一个整数,为所输入矩阵取数后的最大得分

示例1

输入

2 3
1 2 3
3 4 2

输出

82

说明

第一次:第一行取行首元素,第二行取行尾元素,本次得分为1×21+2×21=61 \times2^1+2 \times2^1=6; 第二次:两行均取行首元素,本次得分为2×22+3×22=202 \times2^2+3 \times2^2=20; 第三次:本次得分为3×23+4×23=563 \times2^3+4 \times2^3=56,总得分为6+20+56=82。

示例2

输入

1 4
4 5 0 5

输出

122

示例3

输入

2 10
96 56 54 46 86 12 23 88 80 43
16 95 18 29 30 53 88 83 64 67

输出

316994

备注

对于60%60 \%的数据,1n,m301 \leq n,m \leq 30,答案不超过101610^{16}; 对于100%100 \%的数据,1n,m80,0ai,j10001 \leq n,m \leq 80,0 \leq a_{i,j} \leq 1000