摘要: 前言 ABCDE + 口胡 F + 口胡 G 假做法,三分之一伪 AK(? 正文 A ? B ? C ? D 构造一个环形递增矩阵即可。 E 考虑何时才有一个非降序列。 令 \(val_x\) 为点 \(x\) 的权值。 对于一个相邻的点对 \((u, v)\),可以分成三种情况: \(val_u 阅读全文
posted @ 2024-10-13 23:31 end_switch 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 做题 过于依赖题解与讨论区,缺少行之有效的方法。 积累较少,trick 大多都不会。 现状是思维题对于偏思维难度的想不出正解,偏分讨难度的不会实现;码力题是确实还少点劲头,规划、逻辑较为混乱,没有使用草稿纸的习惯。 想把去年的大模拟补了。 模拟赛 忽高忽低。 原因在于策略以及码力问题。一场大概能有 阅读全文
posted @ 2024-10-13 11:36 end_switch 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 义父 xiexinxin!!!11 /bx /bx 1816 我菜,我唐。 画图分析 + 二分即可。 1884 Explored with puck. meet-in-the-middle 后把可行状态离线下来二维数点即可。 时间复杂度 \(O(2^{\frac{n}{2}} \log n)\) 你 阅读全文
posted @ 2024-10-11 14:18 end_switch 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 记号 sb 题 / 模板题前加:\(\circ\) 有一定难度的题前加:\(\Re\) 不可做的,积累经验的题前加:\(\Im\) 完全是自己做的题前加:\(\bigstar\) 看了题解或讨论的题前加:\(\Game\) 总结前加:\(\color{red} \bigstar\) AT/CF 前加 阅读全文
posted @ 2024-10-10 13:46 end_switch 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 2321 sb 题,质因数分解后对于指数讨论即可。 2324 考场想到了但是树上 \(k\) 级祖先写挂了。/kk 对于一组询问 \((x,y)\),可以分成两种情况:有祖系关系与否。 考虑如何统计答案。 维护 \(dp_x,up_x\) 表示子树内/外的点到点 \(x\) 的路径权值之和。 对于第 阅读全文
posted @ 2024-10-09 15:49 end_switch 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 入门 例题 [ABC329F] Colored Ball。 题意 给定 \(N\) 个盒子,每个盒子里面有一个颜色为 \(C_i\) 的小球。有 \(Q\) 次操作,每次操作将第 \(a_i\) 个盒子中的球都放到第 \(b_i\) 个盒子里面,你需要在每次操作后输出当前操作结束后第 \(b_i\) 阅读全文
posted @ 2024-10-08 14:08 end_switch 阅读(10) 评论(1) 推荐(0) 编辑
摘要: 图灵测试未通过,鉴定为人机。 1540 满足分治性质,放 sort 里面即可。 cmp 函数可以这么写: inline bool cmp(string a, string b) { return a + b < b + a; } 75 没见过的 trick。 题目要求的是最长回文子序列,实质上就是正 阅读全文
posted @ 2024-10-07 14:24 end_switch 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 由于是在树上搞的 ds 所以考察数据结构本身性质偏多,需大力注重细节。 思想 考虑将一颗树的链划分成若干个区间进行维护。 这种划分方式叫做剖分。 约束 一颗有根树(有时要求换根但不是真正换根) 每个点恰好包含在一条剖出的链中(若被多条链同时包含则需要同时维护多条链,修改多余的可能影响复杂度) 剖分出 阅读全文
posted @ 2024-09-09 21:34 end_switch 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 动态开点 当正常堆式建树开不下时(\(n\) 或 \(V\) 过大),通常使用动态开点。 例题 P2781 传教 算是很板了吧? 每次修改的时候,若当前访问节点未建立则新建节点并回溯至上一个节点记录左右儿子。实测写 & 引用或 struct 是很方便的。 要十分注意的是在 work 函数(单点修改 阅读全文
posted @ 2024-09-06 22:32 end_switch 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 并查集 普通并查集 路径压缩写法: struct Union_Find_Set { int f[N]; inline void init() { for(int i = 1 ; i <= n ; ++ i) f[i] = i; } inline int find(int x) { if(x != f 阅读全文
posted @ 2024-09-04 23:14 end_switch 阅读(6) 评论(0) 推荐(0) 编辑