給定乙個 \(n\) 行 \(m\) 列的矩陣,每個位置有權值 \(a_\),可以進行 \(k\) 次操作,每次任選一行或一列,將這行(列)的權值全部變為 \(0\),得分加上這行(列)的權值和,求最大得分
考慮到 \(n,m\) 很小,暴力列舉消除哪些行,然後對列貪心
#include using namespace std;
const int n = 20;
int n,m,k,a[n][n],b[n][n],c[n],d[n],ans;
signed main()
}for(int i=0;i<(1<>(j-1))&1;
int tmp = __builtin_popcount(i), sum=0;
if(tmp>k) continue;
memcpy(a,b,sizeof b);
for(int j=1;j<=n;j++) if(c[j])
memset(d,0,sizeof d);
for(int j=1;j<=n;j++)
sort(d+1,d+m+1);
reverse(d+1,d+m+1);
for(int j=1;j<=min(m,k-tmp);j++) sum+=d[j];
ans=max(ans,sum);
}cout<}
牛客練習賽58 C 矩陣消除遊戲
題目鏈結 牛妹在玩乙個名為矩陣消除的遊戲,矩陣的大小是n行m列,第i行第j列的單元格的權值為ai,ja ai,j 牛妹可以進行k個回合的遊戲,在每個回合,牛妹可以選擇一行或者選擇一列,然後將這一行或者這一列的所有單元格中的權值變為0,同時牛妹的分數會加上這一行或者這一列中的所有單元格的權值的和。牛妹...
矩陣消除遊戲 牛客練習賽58
題意 牛妹在玩乙個名為矩陣消除的遊戲,矩陣的大小是n行m列,第i行第j列的單元格的權值為ai,j,a ai j 牛妹可以進行k個回合的遊戲,在每個回合,牛妹可以選擇一行或者選擇一列,然後將這一行或者這一列的所有單元格中的權值變為0,同時牛妹的分數會加上這一行或者這一列中的所有單元格的權值的和。牛妹想...
牛客練習賽58
a 給你兩個序列ai,bia i,b i ai bi 然後讓你兩兩配對相加,使得最大值最小。貪心。乙個從大到小排,乙個從小到大排,直接相加。b給你乙個01字串,然後讓你找到最多的組,滿足每一組都有0和1。貪心。從前往後掃。遇到0和1是立馬累加,思路 一開始想得是每次挑出行和列中的最大值,然後累加,沒...