NOIP2007提高組 矩陣取數遊戲

2021-09-05 17:33:04 字數 1110 閱讀 3400

本題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...