摘要:
Manacher 正确读法:抹内A撤(马拉车) (跟着假硕学英语) 我们把原来的字符串,通过玄学处理,变成只留下字母,且每两个字母之间有一个奇怪的字符的那种Manacher专用字符串。 建立双射关系 表示 在b中的位置(如果 是字母), 表示 在a中的位置(如果 是字母) 然后对b数组跑Manach 阅读全文
摘要:
这题就没人用并查集吗,我弱弱地问一句 然而是先并,后查的 建立一个带权并查集 表示节点x到他直接父亲的异或值 根据异或的可乱搞的性质 注意并查集一定要先getf一下 然后合并同根据异或可乱搞的性质(rt所示) mspaint真心毒瘤 查询的时候先getf一下 然后直接 即可 cpp include 阅读全文
摘要:
然后呢这道题其实很简单 我们先考虑一种简单的情况,从1直接走到n(不管怎么走的,反正就是走) 然后就能找到一个路径了 这个走的过程用各种zmj算法都能过 然后呢我们发现如果直接走基本不会得到最优解,~~考虑模拟退火~~ 考虑增广 一个增广方法是,从某一个点开始走到一个环,在环上走一圈,然后原路返回, 阅读全文
摘要:
扯点线性基 本博客代码未经过测试 线性基是一个能够在每次时间复杂度$O(\log_2d)$,d是数字的位数内处理异或最大最小的数据结构。 问题:请你维护一个数据结构,支持插入一个数,求这些数任意异或得到的结果是否可能为某一个数、最大值、最小值、第k小值。 做法:开一个数组a[MAXN],MAXN是数 阅读全文
摘要:
博弈的意思就是下棋,这个没什么好解释的 我们先看一个简单的例子,NIM博弈 NIM博弈 Easy Mode 平面上有两堆石子,现在Alice和Bob(怎么又是他们)轮流取石子。每次每个人只能取其中一堆石子,不能不取。取不了石子的输。求先手必胜的状况。 答案很显然。当两堆石子不同的时候是先手必胜。这时 阅读全文
摘要:
问题:给定一个N阶矩阵求他的逆矩阵 建议学习线性代数后食用此题... 我们对输入的矩阵进行初等变换~~(初等乱搞)~~,同时对一个单位矩阵进行相同的初等变换,最后将我们输入的矩阵变换成单位矩阵之后,那个单位矩阵就变成了我们输入的矩阵的逆矩阵 假设我们进行初等变换的初等矩阵乘起来是$P$,且我们输入的 阅读全文
摘要:
我们令$f[i][j]$表示$i$的全排列中,逆序数为$j$的个数。 我们考虑在$i 1$的排列中插入$i$。$k$是这次更新会导致增加多少逆序数。 则$\begin{aligned}{} f[i][j]=\sum_{k=0}^{\min(i 1,j)}f[i 1][j k]\end{aligned 阅读全文
摘要:
题目大意: 给定一个DAG,求起点到终点的路径长度期望 根据题意可以知道每一条边都有一定概率被走到 那么$\displaystyle\begin{aligned} Ans = \sum_{e \in E} f_ew_e\end{aligned}$,其中$E$是边的集合,$f_e$是经过边$e$的期望 阅读全文
摘要:
提供一种单调队列做法(非正解) 显然每一个丑数能够由一个质数乘以另一个丑数得到 所以我们开k个单调递增队列,每次从这些队列顶部找到一个最小的元素把他捞出来,然后枚举所有质数,用这个元素乘以质数,放入相应的单调队列里。找到的第n个数就是所求的丑数。由于会有重复,但是取出元素的顺序是单调的,所以开一个l 阅读全文
摘要:
先说一个小trick,一开始我们把他赋值成是红、白相间的,查询就查询的是全红或全白即可。 然后就可以做啦 题解里面好像都是线段树 暴力的题解好像都被del了 貌似暴力交上去也过不了了 然后我想说 分块大法好! 把同学们他分成$\lfloor\sqrt N\rfloor$块 每块维护八个信息: 左边连 阅读全文
摘要:
题解里面全是dp的大神本蒟蒻瑟瑟发抖奉上一篇记忆化搜索... 其实嘛,记忆化搜索还是很安全透彻清真人品的,一般递推不好实现dp可以用记忆化搜索 然后本题先预处理一个 代表当前能力值为 ,参与滑雪的最小时间。一开始赋初值为$+\infty$,每当读入一个滑雪任务 后,把 区间内的数组对 去取一个min 阅读全文
摘要:
注意到$n\le10$,所以枚举经过的拐弯牛的所有排列。 注意到STL是一个好东西,所以我这里偷懒直接使用了 枚举所有n的排列,对于每一个排列也就是经过拐弯牛的顺序,我们要判断两点: 一个是相邻的两个牛(以及从(0,0)到第一个牛,和从最后一个牛到(0,0))的路径是否平行坐标轴,这个直接判相等即可 阅读全文
摘要:
分享一个非正解的做法 本题解内存最低($\le1\rm MiB$) 但是不开O2会tle 思路:每个数字仅会更新出1个新的数字,而且这个新数字比旧数字最多也就大70多。所以这里还是利用“筛数”的思想枚举所有数字筛数字,但这里我开一个小根堆来存储当前已经被发现 不是自我数 但是 还未被遍历到 的数字。 阅读全文
摘要:
其实只需要开三重循环 根据OI中的一个重要的原理 给定一个序列a,求一个数x使得$\sum |a_i x|$最小,那么这个数是序列a的中位数 证明略 然后既然是中位数,一定是数列中的数,类比到这题,聚集到的点的横纵坐标一定都存在于某些点上,所以O(n^2)枚举聚集到哪个点。 然后求出所有点到这个聚集 阅读全文
摘要:
神仙题 分析法是个好方法 反正xjb分析就分析出来了 首先,i维立方体的点数(0维元素数)为$2^i$ 首先0维肯定是1(不就是一个点吗) 你想想你是怎么用点拼成线段的 你把两个点往地上一扔 然后中间连一条线 就完事儿了 然后你再想想你是怎么用线段拼成正方形的 你把两个长度相等的线段 往地上一方 摆 阅读全文
摘要:
【模板】树状数组 1 点我 代码: 【模板】树状数组 2 点我 代码: 关于lowbit: 大家看看这张图,我列举出了各个元素的lowbit值。我们可以发现,lowbit(x)=father(x)-x。father[x]代表x的父亲(比如图中1的父亲是2,3的父亲是4,6的父亲是8)。 另外我们还可 阅读全文
摘要:
最近在透彻一些数学知识,多项式啊,线性代数啊,杜教筛也逃不掉。。。 洛咕博客的题解都会搬过来的,然后我会整理一遍所有文章。。。 然后下面是正题 我们现在已知积性函数$f(n)$,求$f(n)$的前n项和$S(n)$ 由于$f(n)$是积性函数,所以可以通过线性筛在$O(n)$的复杂度解决 但是由于有 阅读全文