摘要:
因为是判断多点是否 都在区间内出现 ,所以只需记录 最前和最后 两点 (可使用 multiset) 因为是路径 异或和 ,所以可以使用 差分 因为是完全图连边,所以使用优化建图 因为是环上路径,所以可以容斥翻转路径长度 eg: 在长度为 \(w\) 的 \(1->2->3->4->5->1\) 的环 阅读全文
摘要:
指针 在 lower_bound , upper_bound运用时的返回值是指针,可以用 auto 来存储(现在比赛基本都 c++14 了,放心用)。有时常见的解决方法为‘减去数组’,如: int a[N], n, x; int k = lower_bound(a + 1, a + n + 1, x 阅读全文
摘要:
这是因为 2023 csp-s 考得一塌糊涂而来写的文章 总之这次在考试策略上出了很大的问题,还是在乱开题,思路乱撞。 为了以防重现考逝的悲剧,便想在此摸索摸索正确的考试策略 \(2023.10.23\) 来自 csp-s 的总结: 不要考场开大模拟,除非你有绝对的自信 想思路时不要乱跳题 思路多花 阅读全文
摘要:
图论这……感觉是知识点多,算法多,但用的频率不一定高,容易忘记,这里就整点板子防老年痴呆 欧拉路径 即一笔画问题,定义为: 图中经过所有边恰好一次的路径叫欧拉路径。如果此路径的起点和终点相同,则称其为一条欧拉回路。 注意图必须连通,可用并查集或dfs判断 关于判断欧拉路径是否存在: 以下 \(S\) 阅读全文
摘要:
线段树合并 需用结构体存线段树 简单的,板子也好理解 inline int merge(int x, int y, int l, int r){ //将 y 树合并到 x 树中 if(!x || !y){ return x | y; //返回节点 } if(l == r){ tree[x].v += 阅读全文
摘要:
数位dp 离谱dp,常用于有位置与位置之间的限制并计数的问题中。通过记忆化搜索求出。 代码大致模板: const int N = 50; //数的最高位数,可以往大点开 int s[N], tot; //栈用来存每位的数值 int dp[N][2][2]; //状态可能还会多一些,大致与 Dfs 状 阅读全文