2025 CCPC 北京市赛暨小米杯全国邀请赛 比赛记录 + 个人题解
The 2024 ICPC Asia Nanjing Regional Contest (The 3rd Universal Cup. Stage 16: Nanjing)
Codeforces Round 1024 (Div. 1)
A - Mex in the Grid 由于不含 0 的网格的 MEX 都是 0,希望更多的网格包括 0,所以 0 放在正中间。数越小就要越靠近中心(严格证明可以看看官方题解),可以构造 12349 8 7 6 10 1 0 5 11 2 3 4 12 13 14 15 1234567891011121314151617181920212223242526272829303132333435363738394041#include <bits/stdc++.h>using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(nullptr), cout.tie(nullptr); int t; cin >> t; while (t--) { int n; cin >> n; vector a(n, vector<int>(n)); int x = (n + 1) / 2 - 1; int y = (n + 1) /...
〔主机註記〕第 66 周主机註記 (May.12 - May.18)
第 66 周主机註記 月曜日 (May.12) 火曜日 (May.13) 水曜日 (May.14) 木曜日 (May.15) 金曜日 (May.16) 土曜日 (May.17) 日曜日 (May.18)
無標題
参考: https://codeforces.com/blog/entry/45223 https://www.cnblogs.com/znpdco/p/18172429 〇 引入 题意 起初有一个数字 000,每一秒钟随机选择一个数字与手上的数字作按位或。选择数字 iii 的概率是 pip_ipi。问期望多少秒后,手上的数字变成 2n−12^n-12n−1。( 洛谷 P3175 [HAOI2015] 按位或) 分析 二进制 nnn 位数字每一位都要变成 1,先分开考虑,求每一位变成 1 的期望时间,然后再合并。但每种情形并不独立,相加后需要减去一些,有点容斥原理的感觉。 考虑 Min-Max 反演的期望形式。 设 xix_{i}xi 表示第 iii 个二进制位变为 1 的期望时间,SSS 是所有 xix_{i}xi 的集合,那么 E[min(S)]\operatorname{E}[\min(S)]E[min(S)] 表示某个集合 TTT 中 有一个 位置变成 1...
〔主机註記〕第 65 周主机註記 (May.5 - May.11)
第 65 周主机註記 月曜日 (May.5) 我驳斥各种心灵鸡汤。 火曜日 (May.6) 有人说,你必须承认绝大多数人的生活都是平凡的。这里的承认一词换成接受也是可以的。 水曜日 (May.7) 木曜日 (May.8) 金曜日 (May.9) 土曜日 (May.10) 日曜日 (May.11)
Codeforces Round 1022 (Div. 2)
BD 都太恶心,不写题解了。 2108E - Spruce Dispute 结论:以重心为根,删去深度最浅的叶子,再按 DFS 序染色。 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576#include <bits/stdc++.h>using namespace std;int main() { int t; cin >> t; while (t--) { int n; cin >> n; vector<vector<int>> E(n); for (int i = 1; i < n; i++) { int u, v; cin...
〔主机註記〕第 64 周主机註記 (Apr.28 - May.4)
第 64 周主机註記 月曜日 (Apr.28) 火曜日 (Apr.29) 水曜日 (Apr.30) 木曜日 (May.1) 金曜日 (May.2) 土曜日 (May.3) 日曜日 (May.4)
Codeforces Round 1021 Div1A-D (Div2C-F)
2097A - Sports Betting 连续若干数的出现次数依次为 4 或 2 1 … 1 2。 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include <bits/stdc++.h>using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(nullptr), cout.tie(nullptr); int t; cin >> t; while (t--) { int n; cin >> n; map<int, int> mp; for (int i = 0; i < n; i++) { int x; cin >> x; ...
無標題
引入 有三件物品可供选择,物品甲重量为 3,物品乙重量为 8,物品丙重量为 5。有一个背包,问选择任意件物品放入背包后,背包总重为 8 的方案数。 列出所有的可能: 选甲,选乙,选丙; 选甲,选乙,选丙; 选甲,选乙,不选丙; 选甲,不选乙,选丙; 选甲,不选乙,不选丙; 不选甲,选乙,选丙; 不选甲,选乙,不选丙; 不选甲,不选乙,选丙; 不选甲,不选乙,不选丙。 每个物品 X 都有两种状态:选 X 或不选 X,而且每个物品的状态相互独立,直接用一个式子表达: (选甲 或 不选甲)且(选乙 或 不选乙)且(选丙 或 不选丙) 这个逻辑表达式包含了上面全部八种情形。这里 且 的含义是,如果 A 且 B,那么 A 必须执行,B 也必须执行。 把物品重量一并列入上面的表达式中: (重量为 3 或 重量为 0)且(重量为 8 或 重量为 0)且(重量为 5 或 重量为 0) 这样写虽然能表达所有的情况,但文字太多还是太麻烦了。希望选取一些数学符号,完全转化为数学表达式。 观察这个式子: (重量为 3 或 重量为 0)且(重量为 8 或...
〔主机註記〕第 63 周主机註記 (Apr.21 - Apr.27)
第 63 周主机註記 月曜日 (Apr.21) 火曜日 (Apr.22) 水曜日 (Apr.23) 木曜日 (Apr.24) 金曜日 (Apr.25) 土曜日 (Apr.26) 日曜日 (Apr.27)