摘要:
调自闭了 记得那是$Day1$的晚上,我和最强的yem在看pj的题 就发现了这道 之后随手推了一个斜率优化,被杨神嘲讽了 结果发现斜率优化确实是最好的做法了 我们根据时间轴来$dp$ 可以把题意转化为数轴上有很多个点,现在将数轴划分成若干个区间,最小化每一个点到其所在区间右端点的距离 之后就可以搞出 阅读全文
摘要:
卡特兰数! 至于为什么是卡特兰数,就稍微说那么一两句吧 对于一个高度为$i$的阶梯,我们可以在左上角填一个高度为$k$的阶梯,右下角填一个高度为$i 1 k$的阶梯剩下的我们用一个大的长方形填上就可以啦 比如这个样子 之后还需要高精,但是为了简单好写,这里可以分解质因数,之后就变成另一个单精度乘高精 阅读全文
摘要:
$n=m$时候经典的卡特兰 那$n!=m$呢,还是按照卡特兰的方式来推 首先总情况数就是$\binom{n+m}{n}$,在$n+m$个里选择$n$个$1$ 显然有不合法的情况,减掉它们 对于一种不合法的情况,必然存在一个前缀$0$的个数比$1$多$1$ 我们考虑构造出一个由$n+1$个$1$和$m 阅读全文
摘要:
第一问的做法好像不太一样 首先第二问非常简单,直接在主席树上二分就好了,单次查询的复杂度$O(logn)$ 第一问并没有想到有二分这种神仙操作,依旧用的是主席树 我们可以对矩阵建出主席树,也就是像二维前缀和那样的主席树 但是众所周知我们写二维前缀和的时候是这么写的 我们发现这个样子我们根本没有办法优 阅读全文
摘要:
"题目" 非常妙的题目,一看到就以为是一道博弈,之后就不会做了 正解非常巧妙,由于我们只需要求出最后两个人得分的差值,所以对于每一条边我们将其的权值拆成两边,分给其连接的两个点 如果这两个点被同一个人选择,那么这条边的边权就会加到最后这个人的总得分里去,如果被两个人分别选择,那么两个人每个人都获得了 阅读全文
摘要:
noip前练一下码力还是非常有前途的 这道题本来就是想写个大暴力弃疗的,所以直接强上暴力浑身舒爽 结果发现要不是判重的时候脑残了,就能$A$了 没什么好说的呀,就是每一次都暴力$O(n)$往上下左右扩展状态,之后放到队列里,$map$判重就好了 代码 cpp include include incl 阅读全文
摘要:
没写过几道的前缀和优化$dp$ 第一问是小学生难度的二分 第二问就直接$dp$了 设$dp[i][j]$表示当前分割点在$i$之后,前面一共分割了$j$段的方案数 利用前缀和单调性,通过二分预处理出每一个点往前能扩展到的最大位置,之后前缀和优化就可以啦 但是发现这个样子空间会炸,而这个样子还没有办法 阅读全文
摘要:
发现我自己好像不太会做这种题目 但是还是发现有一些套路的 就是拿出中间相邻的两项来进行比较 我们拿出$i,j$这相邻的两项,设$x$表示所有排在$i$还有$j$之前的人左手上的数的乘积,那么$i$在前的充分条件是 $$\frac{x a_i}{b_j} 阅读全文
摘要:
就是化柿子 我们求 $$\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}$$ 的正整数解的个数 喜闻乐见的化柿子了 $$\frac{x+y}{xy}=\frac{1}{n!}$$ $$xy=xn!+yn!$$ $$xy xn!=yn!$$ $$x=\frac{yn!}{y n 阅读全文
摘要:
这道题真是非常蛇皮,卡自然溢出,还非常丧病的卡双自然溢出 一句话题意,求出最长的前缀后缀满足$AB.........BA$的形式 也就是说外面一个$next$,里面一个$next$ 本来想$kmp$的,但是发现没有办法做 于是就考虑一下递推 我们可以定住$A$的长度,来求出$B$的长度 设$dp[i 阅读全文