摘要: D 经典双指针,这种 min{y-x} 比较直球 check 直接考虑单个区间内只需要 x>x-1 就行了,记在区间内的个数为 t,即满足 2t-k=n → 2t>=n+k,并且按这个思路扫一遍肯定能得到合法的划分 当时突然认为虽然数量上满足不一定能得到合法的划分,没仔细想就否掉了,浪费大量时间 E 阅读全文
posted @ 2022-01-31 16:08 zrkc 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 主要是读论文《2D Fractional Cascading on Axis-aligned Planar Subdivisions》时顺便学或看看的东西,写在这里 分散层叠算法(Fractional Cascading)^[P. Afshani, L. Arge, and K. G. Larsen 阅读全文
posted @ 2022-01-30 09:58 zrkc 阅读(200) 评论(0) 推荐(0) 编辑
摘要: OI-Wiki #include <cmath> #include <cstdio> #include <algorithm> //#include <complex> using namespace std; const double Pi = acos(-1); //typedef comple 阅读全文
posted @ 2022-01-27 22:31 zrkc 阅读(37) 评论(0) 推荐(0) 编辑
摘要: OI-Wiki Burnside 引理 数学描述见 Wiki,和实际问题对应起来就行 为了方便我后来的脑子理解,这里首先确定问题为: 对若干元素进行染色(即一个 A 到 B 的映射),并给出一系列等价判定规则(即对于两个染色方案,判断是否存在某种置换,在对元素进行该置换后,根据映射结果是否相同确定这 阅读全文
posted @ 2022-01-26 22:01 zrkc 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 什么叫骗子题呢 我也不知道 反正是一些感觉被耍了的题 Codeforces Round #757 (Div. 2) C Codeforces Hello 2022 D 题解 你会发现,右上、左下的大方块的各四个角,只要利用其中一个就能让所有人到达 能不能证明这八个位置肯定有一个会被经过呢 考虑 (1 阅读全文
posted @ 2022-01-24 18:41 zrkc 阅读(27) 评论(0) 推荐(0) 编辑
摘要: D 只需注意到对于一个符合题意的回文串,当两侧的两个字符串长为2和3时,也可以拿来组成一个新的回文串 让人场上懵逼25分钟不知道WA在什么地方最后爆炸的原因是—— hash弄了个零!h = h*26+(s[i]-'a') 是错的!不能有零!!!前导零在哈希里是体现不出来的!!! 赛后才反应过来... 阅读全文
posted @ 2022-01-23 15:58 zrkc 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 向字符串S中插入一个字符ch,S的字典序变小当且仅当... 阅读全文
posted @ 2022-01-22 16:59 zrkc 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 小清新的分治题,和经典的括号树的实现 阅读全文
posted @ 2022-01-20 19:17 zrkc 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 选少的枚举;建有向边刻画可达关系;期望题 刻画所谓“所有可能版本的贡献之和” 阅读全文
posted @ 2022-01-17 22:44 zrkc 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 参考 用沿着格子边的线刻画一条轮廓线,状态满足字典序,可以直接递推 [九省联考 2018] 一双木棋 chess 这种类似min-max博弈的递推思路和期望dp挺类似的,设 f[s][0/1] 表示当前棋盘状态 s,当前轮到玩家 0/1 时,当前玩家之后可以获得的最大的自己收益与对方的差值,若 s 阅读全文
posted @ 2022-01-16 11:29 zrkc 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 从这看的 对于一些求满足某一性质的最长区间的问题,可以考虑 O(n) 的双指针(或者多带个 log:ST表预处理然后枚举右端点对左端点二分,或者线段树) 常规的双指针要求向当前维护的集合中加入一个元素、删除一个元素时,都能较快地更新集合的某种函数值或性质(当然,根本上要求集合随着元素的加入,这种“函 阅读全文
posted @ 2022-01-14 16:29 zrkc 阅读(1203) 评论(0) 推荐(0) 编辑
摘要: 【笔记】2022WinterVacation 进度(迫真 Unity:一坨(弃) Think XOR Act:简单实现了玩法(弃) 素晴日:\(fin\) ACM CSAPP:第三章 背下单词吧... 【Before】 素晴日 序章 Down the Rabbit-Hole Unity 乱搞了几天,写了几行代码(Think XOR Act)能运 阅读全文
posted @ 2022-01-03 12:26 zrkc 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 一个序列的笛卡尔树,中序是原序列,每个点是子树最值 性质:[l, r] 区间最值等于树上 lca(l, r) 的权值(l、r 分别属于 lca(l, r) 的左右子树!) (考虑这个 x=lca(l, r), 显然序列上其左边的一段点在其左子树,右边一段在其右子树,所以其就是这些 l 和 r 的区间 阅读全文
posted @ 2021-11-10 18:33 zrkc 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 对于 n 个元素 \(a_n\),有若干不等式形如:\(a_i-a_j\leq x\) 注意到只需 \(a_i,a_j\) 符号不等,我们可以把所有不等式和等式转化成上述形式(等式即两个不等式,小于 x 即小等于 x-1 ) 然后我们现在需要知道是否存在一种合法解满足上述所有不等式,又或者在存在合法 阅读全文
posted @ 2021-11-10 15:46 zrkc 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 例如,对于一棵树,支持修改某个节点到根的所有祖先,查询单个节点 即对于一个节点,其只可能被其子树的节点修改 那么我们可以对于修改操作进行单点修改,而查询操作则查询子树信息 CF200D 阅读全文
posted @ 2021-10-09 14:16 zrkc 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 考虑有 n 个各包含 1 个元素的集合,每次任选两个集合合并,合并方式为将小的集合的元素一个个扔到大的集合 这样做的复杂度是 \(O(nlogn)\) 的 考虑将合并过程表示成一个二叉树,一个节点对应合并过程中的一个集合,标记每个被合并到大集合的小集合,总的合并次数就是每个初始元素到根节点被标记的次 阅读全文
posted @ 2021-10-08 14:34 zrkc 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 【游记】The 2021 ICPC Asia Regionals Online Contest (II) 和队友 Tain_U 和 Ctrl2333 组成『上海紅茶館』首次出道! 开 CFIL ,C 题想了一会没思路,F、I 题面长就跳过(,L 题数了数就 25 个质数,显然就是个带暴力修改的线段树题 这次终于没有我的签到题了,压力--(雾 Ctrl2333 整理了 M 的思路来交流,优化了一下做法;T 阅读全文
posted @ 2021-09-26 10:59 zrkc 阅读(273) 评论(0) 推荐(0) 编辑
摘要: %%%GNAQ 让我们先高喊三声:“ GNAQ 太巨啦!!!” 所以这篇算是参考资料?( 无源汇上下界可行流 首先,我们要明确什么是无源汇上下界可行流。 一个闭环环流,每条边流量满足在 \([L_i, R_i]\) 范围内,每个点出流 \(=\) 入流,求可行解(给每个边分配流量)。 在原图上添加超 阅读全文
posted @ 2021-09-01 22:04 zrkc 阅读(146) 评论(0) 推荐(0) 编辑
摘要: \(\epsilon\) 干啥用的?\(\epsilon(a, b)\) 刻画互质数对带来的贡献,然后直接反演 挖坑( 阅读全文
posted @ 2021-09-01 11:46 zrkc 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 感觉会分成好多篇,所以这篇的标题可能不叫网络流( 挖坑 基本模型,有向图,源点 S 汇点 T ,满足每条边的容量限制、除源汇点外的点入流等于出流 最大流 dinic 算法,算法原理什么的先放着(虽然也有用这个出题的),很多时候跑的很快,理论复杂度上界 \(O(n^2m)\) ,二分图上是 \(O(n 阅读全文
posted @ 2021-08-21 21:35 zrkc 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 挖坑 贴代码 #include <cstdio> using namespace std; const int MAXN = 100005; const int sup = 0x3f3f3f3f; const int inf = -sup; struct splayTree { #define ch 阅读全文
posted @ 2021-08-19 18:26 zrkc 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 一些模型? #### 期望 dp f[s] 表示当前状态 s ,到达终态 T 所需的期望步数,那么有 $$f[s] = \sum_{s'} p[s\rightarrow s']\times(f[s']+1)$$ s' 就是下一步可以到达的所有情况,有时是个方程 条件期望:E(期望得分) = P(可得 阅读全文
posted @ 2021-08-17 22:32 zrkc 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 轻重链剖分 将树剖分成若干个链的集合 我们定义,对于节点 u ,其所有子节点中子树最大的节点为其“重子节点”,其余子节点称为“轻子节点”;定义节点到其重子节点的边为“重边”,到其轻子节点的边为“轻边”;定义由重边相连的最大节点集合为“重链”,特别地,单个节点也算重链。 于是我们的树就被剖分成 log 阅读全文
posted @ 2021-08-16 17:17 zrkc 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 链接(原本那么长的题面描述呢?) 扫描线线段树的理解,点坐标与区间段的转化处理 首先考虑将“矩形覆盖点”转化成“点在矩形内”;考虑对于点 (x, y) ,会对矩形左下角位于 (x, y) 到 (x+W, y+H) 时产生贡献,于是就转化过来了 然后考虑烦人的“边框上不计算在内”怎么处理,显然由于给出 阅读全文
posted @ 2021-08-15 18:13 zrkc 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 写一种能方便我记忆的口胡 对于一个二分图,我们定义: 最大边独立集(感觉 最大匹配 这名字反倒容易混):最大的边集,满足对于其中任意两条边,都没有共同顶点 最小点覆盖:最小的点集,满足对于图中任意一条边,都存在一个顶点属于这个点集 最大点独立集:最大的点集,满足对于其中任意两个顶点,都没有连边 最小 阅读全文
posted @ 2021-08-13 11:16 zrkc 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 挖坑 割点,割边,点双连通,边双连通 圆方树 2-SAT 阅读全文
posted @ 2021-08-11 19:00 zrkc 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 挖坑,然后在这里种一棵主席树( 看了代码就很好理解了,对于单点操作只会使 logN 个节点产生变化,这样我们更新版本时,每次往下递归时都开一个新节点复制原来的信息就行了 查询的话从对应版本号的 rt[] 走 至于怎么用...嗯... 模板,静态查询区间第 K 小,权值线段树做差 原始版本的编号是 0 阅读全文
posted @ 2021-08-11 18:56 zrkc 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 我退役了 当成兴趣就行 阅读全文
posted @ 2021-08-08 22:57 zrkc 阅读(72) 评论(0) 推荐(0) 编辑
摘要: awsl #include <cstdio> #include <algorithm> using namespace std; const int MAXN = 200005; int T, N, M, K, A[MAXN]; int main() { scanf("%d", &T); for ( 阅读全文
posted @ 2021-08-04 19:50 zrkc 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 参考博客 有 N 个物品,收益 ai ,代价 bi ,选择 M 个物品使得 \(\frac{\sum{a_i}}{\sum{b_i}}\) 最大 考虑二分答案 x ,将物品价值设为 \(a_i-x\times b_i\) ,选前 M 大,看看总和是否大于 0 题目的话,比如取物品,最“小”生成树,s 阅读全文
posted @ 2021-08-04 09:56 zrkc 阅读(37) 评论(0) 推荐(0) 编辑