根据题目描述,我们可以知道每张牌可填补的数量有限制,因此我们可以用暴力模拟出过程,首先我们需要寻找出每张牌中最小的牌数,再将空白牌填补成该牌即可,最后我们再进行遍历,寻找出最少数量的牌,就是我们要找的答案
上代码
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 2e5 + 10;
int a[N], b[N];//分别记录有多少张牌,最多可以写多少张
int n, m;
int main(void)
{
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin >> n >> m;
for(int i = 1; i <= n; i++){
cin >> a[i];
}
for(int i = 1; i <= n; i++){
cin >> b[i];
}
for(int i = 1; i <= m; i++){//从第一张空白牌开始枚举
int min1 = 0x3f3f3f3f;//初始化当前牌数最小值
int min_place = -1;//存储当前最小值的下标
for(int i = 1; i <= n; i++){
if(min1 > a[i]){
min1