正经题解|新年快乐
2024-03-22 13:55:17
发布于:浙江
13阅读
0回复
0点赞
题面大意
有堆糖果,每次你可以将任意一堆复制到另一堆上。每堆糖果的数量不能超过
题意分析
求最多能复制几次。
解题思路
每次我们把较小的一堆复制到较大的一堆,那么考虑找出最小的一堆,由它来当被复制的,复制到其他堆上。这样每堆能操作的次数才会最多。
时间复杂度解析
找出最小的那堆糖果,扫描所有糖果堆,计算最小糖果堆能复制到其它糖果堆的操作次数,复杂度为
代码演示
#include <bits/stdc++.h>
using namespace std;
const int N = 1100;
int a[N];
int main() {
int n,k;
cin >> n >> k;
for(int i=0;i<n;i++) {
cin >> a[i];
}
sort(a,a+n,less<int>());
int r = 0;
for(int i=1;i<n;i++) {
r += (k - a[i]) / a[0];
}
cout << r << endl;
return 0;
}
这里空空如也
有帮助,赞一个