07 2022 档案
摘要:P3454 OSI-Axes of Symmetry 题解 求多边形的对称轴 这是一道人类智慧题 顺时针或者逆时针转一圈,将 个点的多边形的角和边的值连在一起就得到了一个环,环长为 我们只需要判断对应的边和角相等 具体地,我们用边长表示每条边,用两条邻边的叉积和点积代表以这个点为顶
阅读全文
摘要:P5504 柠檬 考虑 我们设 表示已经取下了前 个贝壳所得到的最大柠檬数 显然我们可以得到一个结论:每一段左右大小必然相等 因为若是左右两个端点不相等的话,必然有一个端点因为大小不同而没有贡献 这个端点就可以并到其他区建立得到更优解 我们用 表示点
阅读全文
摘要:P2569 股票交易 题解 思路: 容易想到 ,我们设 表示第 天剩下 张股票最多可以赚到多少钱 显然由于 所以一天之内不可能既买又卖,只能只买/只卖/不卖不卖 不卖不卖的转移十分容易:
阅读全文
摘要:P4587 [FJOI2016]神秘数-题解 思路: 我们考虑将询问的区间 内的所有数先从小到大排序,然后从左到右扫一遍 我们假设当前扫到了 且用 所能表示的值域为 若 ,则我们无论如何都表示不出 $x
阅读全文
摘要:2022.7.25 模拟赛 题及题解 旅行日记 这题是个简单的贪心,显然我们在两天之间先往上走再往下走 那么对于相邻两天 ,我们可以抽象成先花费 的时间使两座山的高度都变成高的那座的高度,然后高度可以增加剩下的时间除以 (因为要上去再下来) 答案就是 $\m
阅读全文
摘要:平衡树 一个题单 不同平衡树 有许多不同的平衡树 如:替罪羊树,AVI,红黑树,Treap,FHQ-Treap (无旋Treap),Splay,SBT 等 其中比较重点的是上述后四种 目前只学习了 Splay 和 Treap 能够较为熟练的打出来的只有 Splay 有关 Splay 代码 (luog
阅读全文
摘要:线段树进阶 权值线段树 权值线段树的思想就是让线段树存储的东西由下标变成了权值 也就是区间 内实际上存储的是权值在 范围内的数的个数 权值线段树有诸多用途,如我们可以查询 来找到所有权值小于 的数的个数 可持久化线段树与可持久化权值线段树 (主
阅读全文
摘要:分块 超级暴力,超好想,超好打,超好用 无脑首选 放个题单 下面的例题较简单的就不放代码 #6277. 数列分块入门 1 区间加法单点求值 边角块暴力,区间打标记 时间复杂度 #6278. 数列分块入门 2 区间加法,查询区间内小于某一个数的个数 对于每一个块我们
阅读全文
摘要: 
阅读全文
摘要:模拟退火 模拟退火是一种 著名的 玄学的随机化算法,其建立在物理中退火过程的基础上 其时间复杂度为 (因为要跑满确保正确性) ,正确概率为 通常人们使用造数据+手动二分调参的方式来提高正确率 这种算法是 在比赛中
阅读全文
摘要:带修莫队与树上莫队 带修莫队 我们把每一个修改编号,并把这个编号称为时间戳,查询操作的时间戳就沿用最近一次修改操作的时间戳。 对于每个查询操作,如果当前时间戳相对太大了,说明已进行的修改操作比要求的多,就把之前改的改回来,反之往后改。 只有当当前区间
阅读全文
摘要:2022.7.14 模拟赛 数独 思路: 大模拟 写完调完,难度一般般 #include<bits/stdc++.h> using namespace std; inline int read(){ int x=0,f=1;cha
阅读全文
摘要:New //树的直径、树的重心 //启发式搜索(A*) //迭代加深搜索 //点分治 //树分块 //虚树 //Splay //带权并查集 //凸包 //可持久化线段树 //*prufer编码 //*动态点分治 //可持久化trie //边分治 //整体二分 //*树上莫队 //CDQ分治 //tr
阅读全文
摘要:2022.7.13 模拟赛 最大序列 思路: 首先出栈的必然是最大的数 设每次出栈的数在 处 然后不断比较 处的数和 中最大的数,判断往哪边出栈 细节很多 ~~貌似就只有我一个人写了76行的代码,其余人都是
阅读全文
摘要:7.13 数论练习 P4301 新Nim游戏 思路: 考虑这是 游戏,想要先手必胜,就要让对方在第一回合无论拿走几堆后剩下的所有堆异或和都不为 考虑线性基,若插进去的 最后为 就说明 不能插 所以搞一下贪心,将所有石子堆 按个数从大到小遍历 能
阅读全文
摘要:公平组合游戏 游戏 参考 概述与解法 游戏是 满足下列条件的游戏才算 : 两个人 两个人交替对游戏进行移动,每次一步,选手可以在(一般而言)有限的合法移动集合中任选一种进行移动 对于游戏
阅读全文
摘要:2022.7.12 模拟赛 比赛 link 牛半仙的妹子数 题意: 给你 组数据,每组数据给你 个数 ,你需要进行 次操作 假定 ,则每次: 若 ,则 否则 $x=x-c,c=2\cdot
阅读全文
摘要:P3377 【模板】左偏树(可并堆) 题意: 一开始有 个小根堆,每个堆包含且仅包含一个数。接下来需要支持两种操作: 1 x y:将第 个数和第 个数所在的小根堆合并(若第 或第 个数已经被删除或第 和第 个数在用一个堆内,则无视此操作)。 2
阅读全文
摘要:有关对拍 你需要随机数生成器.exe,sol.exe,bruteforce.exe,以及对拍.exe //rand.cpp #include<bits/stdc++.h> using namespace std; #define int long long cons
阅读全文
摘要:网络流练习 若是一个点经过的次数有限制,则需要拆点 拆点的妙用博大精深 注:下文中 指超级源点, 指超级汇点 这里是最大流dinic的代码和费用流EK的代码 最大流 P1231 教辅的组成 题意: 现在有 三种东西,分别有 个 告诉你 组
阅读全文
摘要:圆方树 前言 众所周知,树往往有着许多非常好的性质 圆方树就是一种把一个图变成一棵树的方式 定义 我们一般在无向图上使用圆方树 先介绍点双连通分量 一个点双连通图的定义:图中任意两点之间都至少有两条不同的路径可互相抵达 一个点双连通分量是一个极大点双连通图 在圆方树中,每个原图中的点对应一个圆点,每
阅读全文
摘要:同余最短路 题型 给定 个整数,求这 个整数能拼凑出多少的其他整数( 个整数可以重复取) 给定 个整数,求这 个整数不能拼凑出的最小(最大)的整数 至少要拼几次才能拼出模 余 的数 例题 P3403 跳楼机 题意: 给定 ,问对
阅读全文
摘要: 重构树 如何构造 先把边从小到大排序 在 合并两个点 所在的集合时,新建一个节点 同时连接 ,且 的点权等于 之间的边权 如这样一个图 我们先把边权从小到大排序 合并 时,新建点权为 的节点
阅读全文
摘要:CF888G Xor-MST 题意: 给定 个结点的无向完全图。每个点有一个点权为 。连接 号结点和 号结点的边的边权为 。 求这个图的 最小生成树 的权值。 ,$0\le a_i< 2^
阅读全文
摘要:树链剖分 前言 我认为树链剖分是一种工具而不是数据结构 它能让你处理树上的链的操作 感觉像是 序列 树 的一种媒介,序列问题 树剖 树上问题 是这样没错了 模板P3384 题意: 给你一颗树,需要支持以下操作: 1 x y z,表示将树从 到 $y
阅读全文
摘要:线段树+树状数组 线段树能解决的问题: 单点修改(加),区间加、乘、推平,单点(区间)查询最大(小)值、和、平(立)方和、、最大子段和 树状数组能解决的问题: 区间修改单点查询,单点修改区间查询,通过维护值域求大于等于当前值的数的个数(可用于求逆序对) P5278 题意: 给你一个序列,要
阅读全文
摘要:exkmp(Z函数) 题 题意: 给定两个字符串 A B,要求出两个数组: B 与 B 的每一个后缀的 LCP 长度 (next) B 与 A 的每一个后缀的 LCP 长度 (extend) 求
阅读全文
摘要:最小表示法 题意 : 给你一个字符串 a , 找出字符串 a 的的循环同构串中字典序最小的一个 循环同构串 : 把字符串 a 从任意一个地方切开,将两部分交换位置,重新首尾相连形成的串 算法 : 定义指针 i , j , 匹配长度 k 初始 i=0,j=1,k=0 比较 a[i+k] 和 a[j+k
阅读全文
摘要:Manacher 题意 : 求最长回文串 预处理 : 奇回文串的对称中心是中间的字符,偶回文串对称中心是中间两个字符的空隙处,若分开处理很麻烦,因此在每两个字符中间插入一个字符|使得对称中心都为一个字符 算法 : 定义 p[i] : 以 i 为回文中心的最长回文半径 ( p[i]-1 为最长回文串的
阅读全文