luogu P1005 矩陣取數遊戲

2021-08-18 03:03:55 字數 627 閱讀 9900

題目傳送門:

題意:

有乙個n*m的矩陣,求取所有數的最大值。注意:取數有且僅能從當前行兩邊取且對於每一次取數,都要從每一行取乙個,取數的值=被取走的元素值*2^i,i表示當前取到第i個數。

思路:

區間dp,我們可以知道每一行與其他行沒有聯絡,將每一行的最大值加起來,就可以推方程了。

**:

#include#include#include#define i __int128

using namespace std;

int n,m;

int a[100];

__int128 f[100][100];//f[i][j]表示從i取到j的最大值

__int128 ans=0;

void print(__int128 x)

int main()

for(int l=2;l<=m;l++)

for(int i=1;i<=m-l+1;i++)

ans+=f[1][m];

} print(ans);

}

luoguP1005矩陣取數遊戲

題目描述 帥帥經常跟同學玩乙個矩陣取數遊戲 對於乙個給定的nm的矩陣,矩陣中的每個元素aij均為非負整數。遊戲規則如下 1.每次取數時須從每行各取走乙個元素,共n個。m次後取完矩陣所有元素 2.每次取走的各個元素只能是該元素所在行的行首或行尾 3.每次取數都有乙個得分值,為每行取數的得分之和,每行取...

洛谷P1005 NOIP2007 矩陣取數遊戲

抄的高精度模板233 由於要取完所有的數,所以原題可轉化為在每一行上取數,累加所有行的答案即可 f k i j 表示在第k行從1取到i,從j取到m的答案 f k i j max f k i 1 j 2 m j i 1 a k i 1 f k i j 1 2 m j i 1 a k j 1 第一次寫把...

P1005 矩陣取數

看完題可能第一時間並沒有清晰的思路。讓我們一步一步的來考慮這道題目。題目中描述操作為每次從所有的行中選取,這樣做有些麻煩。仔細思考一下可以發現行與行之間互不干涉,所以我們可以對每行操作到底,最後統計答案。每行怎麼選取當然難不倒聰明的oier了,設f i j 表示某行從第i位到第j位的最優答案。轉移如...