1473A. Replacing Elements Rating 800

对数组排序,一旦数组中最大的数即a[n-1]是一个小于或等于d的数,直接输出YES即可,否则运用数组中最小的两个数加和替换最大的数。

  1. int main() {
  2. ios_base::sync_with_stdio(false), cin.tie(0);
  3. for (cin >> _; _--;) {
  4. int n, d;
  5. cin >> n >> d;
  6. vector<int> a(n);
  7. for (auto &i : a) cin >> i;
  8. sort(a.begin(), a.end());
  9. cout << (a[n - 1] <= d || a[0] + a[1] <= d ? "YES\n" : "NO\n");
  10. }
  11. return 0;
  12. }

1473B. String LCM Rating 1000

给两个只由a和b组成的字符串,让你求出即符合a的变化规律又符合b的变化规律的,长度即能被a的长度整除也能被b的长度整除的最短字符串。

那么模拟一下过程即可

  1. int main() {
  2. ios_base::sync_with_stdio(false), cin.tie(0);
  3. for (cin >> _; _--;) {
  4. string a, b;
  5. cin >> a >> b;
  6. string p = a, q = b;
  7. while (true) {
  8. if (p.length() == q.length()) {
  9. if (p == q)
  10. cout << p << endl;
  11. else
  12. cout << -1 << endl;
  13. break;
  14. }
  15. if (p.length() < q.length())
  16. p += a;
  17. else
  18. q += b;
  19. }
  20. }
  21. return 0;
  22. }

1473C. No More Inversions Rating 1500

Educational Codeforces Round 102 Personal Editorial(A~C,max Rating 1500) - 图1

  1. int main() {
  2. ios_base::sync_with_stdio(false), cin.tie(0);
  3. for (cin >> _; _--;) {
  4. int n, k;
  5. cin >> n >> k;
  6. for (int i = 1; i < 2 * k - n; i++) cout << i << ' ';
  7. // 2 * k - n即 k - (n - k)的变形
  8. for (int i = k; i >= 2 * k - n; i--) cout << i << ' ';
  9. cout << endl;
  10. }
  11. return 0;
  12. }