本題dp+高精度即可。
首先我們可以發現它的貢獻只與行有關係,於是就分成n行,每行都做dp,然後將max加起來即可。(ps:用高精度實現)
上標:
#include
#include
#include
#define mo 100000
#define ll long long
using namespace std;
int n,m,c[81]
[81];
struct gjd
ans,f[81]
[81],e[81]
,s,d;
inline
intread()
gjd cheng
(gjd a,
int b)
while
(x) a.a[
++a.top]
=x%mo,x/
=mo;
return a;
}gjd plus
(gjd a,gjd b)
while
(!d.a[d.top]
) d.top--
;return d;
}gjd ma
(gjd a,gjd b)
intmain()
for(
int j=m-
1;j>=
0;j--
)memset
(s.a,0,
sizeof
(s.a));
s.top=0;
for(
int j=
0;j<=m;j++
) s=
ma(s,f[j]
[j])
; ans=
plus
(ans,s);}
printf
("%d"
,ans.a[ans.top]);
for(
int i=ans.top-
1;i>
0;i--
)printf
("%05d"
,ans.a[i]);
return0;
}
提高組NOIP2007 矩陣取數遊戲
題目描述 帥帥經常跟同學玩乙個矩陣取數遊戲 對於乙個給定的n m的矩陣,矩陣中的每個元素a i,j 均為非負整數。遊戲規則如下 每次取數時須從每行各取走乙個元素,共n個。m次後取完矩陣所有元素 每次取走的各個元素只能是該元素所在行的行首或行尾 每次取數都有乙個得分值,為每行取數的得分之和,每行取數的...
NOIP2007提高組 矩陣取數遊戲
本題dp 高精度即可。首先我們可以發現它的貢獻只與行有關係,於是就分成n行,每行都做dp,然後將max加起來即可。ps 用高精度實現 上標 include include include define mo 100000 define ll long long using namespace std...
NOIp2007提高組 矩陣取數遊戲
oj題號 洛谷1005 思路 動態規劃。不難發現每行能夠取得的最大值僅與當前行的資料有關,因此本題可以對每行的資料分別dp,最後求和。設 f 表示左邊取 i 個 右邊取 j 個的最大值,則dp方程為 f max f a 2 f a 2 然而資料規模較大,使用 int 只有40分,用 unsigned...