avatar
文章
410
標籤
38
分類
38
記事簿
  • 《中外历史纲要》
  • 《主机註記》
筆記本
  • 邏輯與算法
  • 大學筆記
作品集
  • CUC-Radio
  • 篆刻作品展
工具箱
  • Music
  • 詩詞
更多
  • 旅遊足跡
  • 地鐵圖
  • 賽博空調
  • 中午吃什么
  • 进制转换
  • 尖团音识别
好盆友
關於小明
小明の雜貨屋Hackenbush
記事簿
  • 《中外历史纲要》
  • 《主机註記》
筆記本
  • 邏輯與算法
  • 大學筆記
作品集
  • CUC-Radio
  • 篆刻作品展
工具箱
  • Music
  • 詩詞
更多
  • 旅遊足跡
  • 地鐵圖
  • 賽博空調
  • 中午吃什么
  • 进制转换
  • 尖团音识别
好盆友
關於小明

Hackenbush

發表於2026-06-05|更新於2026-06-05|邏輯與算法知識GameTheory博弈論
|總字數:0|閱讀時間:1分鐘|瀏覽量:
文章作者: 小明同學
文章連結: http://kobicgend.top/posts/87f042b.html
版權聲明: 本部落格所有文章除特別聲明外,均採用CC BY-NC-SA 4.0 授權協議。轉載請註明來源 小明の雜貨屋!
筆記ACM算法
上一篇
图论建模
ABC437G ABC437G - Colorful Christmas Tree 一道题建了三个新图,算上原树总共四个图 ww 给定 NNN 点树,每个节点初始被染成 012 三种颜色之一。 执行以下操作 N−1N-1N−1 次:选择一条当前存在、且两端点颜色不同的边,将其删除,然后将这条边两端点的颜色,按照 0 →\to→ 1 →\to→ 2 →\to→ 0 的循环顺序变为下一种颜色。 判断是否存在一种合法的删边顺序,能够把树上的边全部删完。若存在,输出之。 Step.1 转化为匹配 在全过程中,顶点 vvv 处于颜色 kkk 时参与删除,这个操作次数确定,记为 Av,kA_{v, k}Av,k​。这给定了每个点在特定颜色下需要消耗的额度,因此这本质上是一个匹配问题。 建图: 点:将一个点 vvv 拆成 Av,kA_{v,k}Av,k​ 个点 (v,k)(v,k)(v,k)。 边:对于一条边 u−vu-vu−v,如果 (u,k1)(u,k_{1})(u,k1​) 和 (v,k2)(v,k_{2})(v,k2​) 颜色不同,则连边 (u,k1)−(v,k2)(u,...
下一篇
Minimax Theorem
ABC427D - The Simple Game 有向图,保证每个点的出度至少为 111。棋子最初放在顶点 111 上,两人交替将棋子移动到出点各 KKK 次。若最终停在 A,则 Alice 获胜,否则 Bob 获胜。 12345678for (int _ = 0; _ < 2 * K; _++) { std::vector<int> nf(N); for (const auto& [x, y] : edges) { nf[x] |= !f[y]; } f = nf;}std::cout << (f[0] ? "Alice" : "Bob") << std::endl; CF2140E 给定下标集合 CCC 。 现有长度为 NNN 的石子数量序列 aaa,满足对于 1⩽i⩽N1 \leqslant i \leqslant N1⩽i⩽N,1⩽ai⩽M1 \leqslant a_i \leqslant M1⩽ai​⩽M。 针对序列 aaa...
相關推薦
2025-04-01
【算法杂谈 + 好题分享】图论中的懒标记 LazyTag 思想
有三件物品可供选择,物品甲重量为 3,物品乙重量为 8,物品丙重量为 5。有一个背包,问选择任意件物品放入背包后,背包总重为 8 的方案数。 列出所有的可能: 选甲,选乙,选丙; 选甲,选乙,选丙; 选甲,选乙,不选丙; 选甲,不选乙,选丙; 选甲,不选乙,不选丙; 不选甲,选乙,选丙; 不选甲,选乙,不选丙; 不选甲,不选乙,选丙; 不选甲,不选乙,不选丙。 每个物品 X 都有两种状态:选 X 或不选 X,而且每个物品的状态相互独立,直接用一个式子表达: (选甲 或 不选甲)且(选乙 或 不选乙)且(选丙 或 不选丙) 这个逻辑表达式包含了上面全部八种情形。这里 且 的含义是,如果 A 且 B,那么 A 必须执行,B 也必须执行。 把物品重量一并列入上面的表达式中: (重量为 3 或 重量为 0)且(重量为 8 或 重量为 0)且(重量为 5 或 重量为 0) 这样写虽然能表达所有的情况,但文字太多还是太麻烦了。希望选取一些数学符号,完全转化为数学表达式。 观察这个式子: (重量为 3 或 重量为 0)且(重量为 8 或 重量为...
cover
2025-01-11
Good Bye 2024: 2025 is NEAR A - E
2053A - Tender Carpenter 123456789101112131415161718192021222324252627#include <bits/stdc++.h>using namespace std;using ll = long long;int main() { int t; cin >> t; while (t--) { int n; cin >> n; vector<int> a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } int cnt = 0; for (int i = 1; i < n; i++) { int j = i - 1; cnt += (2 * a[i] > a[j]...
2026-05-30
01Trie
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121struct Node { std::array<Node*, 2> next{}; int icnt = 0;};void insert(Node*& p, int val, int bit = 30) { if (!p) { p = new Node(); } p->icnt++; if (bit == -1) return; ...
2026-05-30
01 串
二分转化为 01 串 如果某个问题满足: 如果序列只有 0\mathtt{0}0 和 1\mathtt{1}1,问题是易解决的 答案依赖于序列中的数的大小关系 单次询问 可以考虑二分答案(或计算答案的中间变量)为 xxx,将序列中 ⩾x\geqslant x⩾x 的数置为 111,否则将 <x<x<x 的数置为 000(或 −1-1−1,按需),将序列转化为 01\mathtt{01}01 串。 【求中位数】x=an+12′x = a'_{\frac{n+1}{2}}x=a2n+1​′​,其中将 aaa 数组排序后为 a′a'a′。⩾x\geqslant x⩾x 的个数比 <x< x<x 的个数 恰好 要多,因此可以通过二分出一个最大的满足上述整数得到中位数。值得注意的是,如果中位数定义为 an+12a_{\frac{n+1}{2}}a2n+1​​,将 ⩾x\geqslant x⩾x 的数置为 111,定义为 an2a_{\frac{n}{2}}a2n​​,将 >x> x>x...
2026-06-14
多组数据
...
cover
2024-10-27
Codeforces Global Round 27 A-D
A. Sliding 12345678910111213141516171819202122#include <bits/stdc++.h>using namespace std;using ll = long long;int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int t; cin >> t; while (t--) { ll n, m, r ,c; cin >> n >> m >> r >> c; ll ans = (n - r) * (2 * m - 1); ans += (m - c); cout << ans << "\n"; } return 0;} B. Everyone Loves Tres 依据样例,奇数是...

評論
avatar
小明同學
「一直游到海水變藍。」
文章
410
標籤
38
分類
38
Follow Me
©2024 - 2026 By 小明同學