摘要:
A. Increase or Smash 题意:你有一个全\(0\)数组,每次可以使得数组全部加上一个数或者使得某些位置变为\(0\)。求变成\(a\)的最小操作数。 最少的操作方案是,先把\(a\)去重后排序,然后从大到小每次加\(a_i - a_{i-1}\),然后把小于\(a_i\)的位置都变 阅读全文
摘要:
A - Sigma Cubes 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void solve() { int n; std::cin >> n; int ans = 0; for (int i = 1; i <= n; ++ i) 阅读全文
摘要:
A. Be Positive 题意:一个数组\(a\),只包含\(-1, 0, 1\)。你每次可以使得一个数加一,求使得数组乘积为正的最少操作次数。 显然只需要操作\(-1\)或者\(0\)。\(0\)必须都加一。那么如果\(-1\)是偶数个,不需要操作,否则需要操作一个\(-1\)两次变成\(1\ 阅读全文
摘要:
A. Cut the Array 题意:把数组分成三段,使得每段和模\(3\)后的值都相同或者都不相同。 \(n\)很小,暴力枚举分段就行了。 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void solve() { int n; s 阅读全文
摘要:
A. Maple and Multiplication 题意:给你\(a, b\),每次可以让\(a\)乘以任何数或者让\(b\)乘以任何数,求\(a, b\)相等的最小操作数。 显然\(a, b\)都变成\(lcm(a, b)\)最优。 点击查看代码 #include <bits/stdc++.h 阅读全文
摘要:
A. Painting With Two Colors 题意:一个长度为\(n\)的数组,先把一段长度为\(a\)的子数组染为红色,再把一段长度为\(b\)的子数组染为蓝色,蓝色会覆盖红色。求能不能使得数组是回文。 因为要左右对称,所以肯定是染色的两个子数组的中心位置应该相同。 那么如果\(a > 阅读全文