A. Upload More RAM
题目大意
上传nGB内存,连续k秒内最多只能上传1GB,要求求出上传nGB要的最小秒数。
思路
n、k的数据范围在100之内,按题意模拟即可。
代码实现
void solve() {
ll n, k; cin >> n >> k;
ll ans = 0;
while (n != 1) {
ans += k;
n -= 1;
}
cout << ans + 1 << "\n";
}
B. K-Sort
题目大意
给定一个序列,给定以下操作:
-
首先选择一个k,1<=k<=n,支付k+1个硬币。
-
选择恰好k个索引,使每个索引的值加一。
要求求出让整组序列非递减所需最小硬币数。
思路
首先我们可以观察到,每次操作选择不同索引,加的数目均为1,可知产生的贡献为k,支付k+1个硬币。这个贡献k为我们选取的个数,所以我们要让整组序列变成非递减的过程中,只有k+1中的1会产生额外价格,我们最小化这个1的数量即可。
所以我们每次操作时,尽可能大的选择k的值,然后常数1的数量应该为需要改变最多的值的数量。
代码实现
void solve() {
ll n; cin >> n;
vector<ll>o(n);
for (int i

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



