NC200190 矩陣消除遊戲 二進位制列舉

2021-10-09 01:12:10 字數 2526 閱讀 9194

題目鏈結

題意:

n ∗m

的矩陣,

可以消除

一行或者

一列k次

n*m的矩陣,可以消除一行或者一列k次

n∗m的矩陣

,可以消

除一行或

者一列k次每次

消除可以

得到該行

(列)的

分數和,

並且這一

行(列)

全部變0

每次消除可以得到該行(列)的分數和,並且這一行(列)全部變0

每次消除可以

得到該行

(列)的

分數和,

並且這一

行(列)

全部變0

求 最大

可得到的

分數

求最大可得到的分數

求最大可得到

的分數題解:

n ,m

<=15

,k

<=n

∗m

n,m<=15,k<=n*m

n,m<=1

5,k<=n

∗m發 現這

個n,m

很小,20

以內

發現這個n,m很小,20以內

發現這個n,

m很小,

20以內

那 麼就

可以用最

暴力的方

法,二進

制枚

舉那麼就可以用最暴力的方法,二進位制列舉

那麼就可以用

最暴力的

方法,二

進製列舉

枚 舉消

除了哪幾

行之後,

對矩陣進

行更

新列舉消除了哪幾行之後,對矩陣進行更新

列舉消除了哪

幾行之後

,對矩陣

進行更新

然 後把

列的塊數

進行排序

,將剩下

次數盡量

消除塊數

較多的列

然後把列的塊數進行排序,將剩下次數盡量消除塊數較多的列

然後把列的塊

數進行排

序,將剩

下次數盡

量消除塊

數較多的列最後

取最大值

即可

最後取最大值即可

最後取最大值

即可ac**

/*

author : zzugzx

lang : c++

blog : blog.csdn.net/qq_43756519

*/#include

using

namespace std;

#define lson now<<1

#define rson now<<1|1

#define fi first

#define se second

#define pb push_back

#define mp make_pair

#define all(x) (x).begin(),(x).end()

typedef

long

long ll;

typedef pair<

int,

int> pii;

typedef pair pll;

const

int mod=

1e9+7;

const

double eps =

1e-10

;const

double pi=

acos(-

1.0)

;const

int maxn=

2e5+10;

const ll inf=

0x3f3f3f3f

;int dir[4]

[2]=

,,,}

;ll a[20]

[20],sum[20]

,b[20][

20];bool

cmp(

int a,

int b)

intmain()

ll ans=0;

for(

int i=

0;i<(1

<;i++)if

(p>t)

continue

;for

(int j=

1;j<=m;j++

)sort

(sum+

1,sum+

1+m,cmp)

;for

(int j=

1;j<=t-p;j++

) tmp+

=sum[j]

; ans=

max(ans,tmp);}

cout<}

矩陣消除遊戲 牛客練習賽58

題意 牛妹在玩乙個名為矩陣消除的遊戲,矩陣的大小是n行m列,第i行第j列的單元格的權值為ai,j,a ai j 牛妹可以進行k個回合的遊戲,在每個回合,牛妹可以選擇一行或者選擇一列,然後將這一行或者這一列的所有單元格中的權值變為0,同時牛妹的分數會加上這一行或者這一列中的所有單元格的權值的和。牛妹想...

牛客練習賽58 C 矩陣消除遊戲

題目鏈結 牛妹在玩乙個名為矩陣消除的遊戲,矩陣的大小是n行m列,第i行第j列的單元格的權值為ai,ja ai,j 牛妹可以進行k個回合的遊戲,在每個回合,牛妹可以選擇一行或者選擇一列,然後將這一行或者這一列的所有單元格中的權值變為0,同時牛妹的分數會加上這一行或者這一列中的所有單元格的權值的和。牛妹...

牛客練習賽58 C 矩陣消除遊戲 貪心

給定乙個 n 行 m 列的矩陣,每個位置有權值 a 可以進行 k 次操作,每次任選一行或一列,將這行 列 的權值全部變為 0 得分加上這行 列 的權值和,求最大得分 考慮到 n,m 很小,暴力列舉消除哪些行,然後對列貪心 include using namespace std const int n...