01 2024 档案
摘要:P1627 [CQOI2009] 中位数 小清新 trick 题。 题意:给你一个长度为 n 的排列,数 b,求中位数为 b 的子段个数。 容易想到,把 > b 的作为 1,< b 的作为 -1,最后统计包含 p 且和为 0 的子段个数。 用 map 维护一下左边不同和的个数,再往右扫一遍就做完了。
阅读全文
摘要:[AGC006D] Median Pyramid Hard 考虑对于一个长度为 2n + 1 的 01 序列 b 如何快速确定堆顶元素。 _ _ _ _ x _ _ _ 0 x _ _ 0 0 x _ x 0 0 x x x 0 0 x 容易得到,两个相同元素能够一直往上走,直到边界。 如果有两个相
阅读全文
摘要:CF1097C Yuhao and a Parenthesis stl 乱搞做法,感觉比正解更直接。 每个字符串内部能匹配的尽可能匹配。 匹配完成后,检验剩余序列是否只含有 ( 或只含有 ) 或为空,如果符合条件,插入待选序列。 在待选序列中尽可能匹配。 code 用一个 set<pair<stri
阅读全文
摘要:G. Subset with Zero Sum 很妙。 一开始冲着背包去想的,显然不行。 考虑他条件给的这个 化简一下得到 题目要去求 \[\sum \limits_{i \in S} a_i =
阅读全文
摘要:A. 2023 正常签到。 void solve() { int n, k, ok = 1; cin >> n >> k; int t = 2023; while(n --) { int x; cin >> x; if(t % x) ok = 0; t /= x; } cout << (ok ? "
阅读全文
摘要:A 直接模拟,注意细节 #include<bits/stdc++.h> #define ll long long using namespace std; ll p[15] = {1}; void solve() { ll x; cin >> x; int len = 0; while(x / p[
阅读全文
摘要:A 构造题,分两种情况考虑 上下都行,左右选一个 左右都行,上下选一个 void solve() { int n; cin >> n; vector<pair<int, int> > a(n); for(auto &t : a) cin >> t.x >> t.y; sort(a.begin(),
阅读全文