题面首先莫队,必定的第一,第二两种操作维护两个$bitset$,然后位移后求个交就好了第三种操作。。。直接暴力枚举因数就好了。。。$O(n\sqrt m+\frac{mc}{\omega}+m\sqrt c)$#include <bits/stdc++.h>using namespace ...
题解 P5395[模板]第二类斯特林数-行
题面公式一顿带 \begin{Bmatrix}n\\m\end{Bmatrix}=\frac 1{m!}\sum_{i=0}^m(-1)^{m-i}\frac{m!}{i!(m-i)!}i^{n}=\sum_{i=0}^m\frac{(-1)^{m-i}}{(m-i)!}\frac {i^n}{ ...
题解 P5393 [模板]下降幂多项式转普通多项式
题面考虑转成点值表达再快速插值点值的指数生成函数就是系数的生成函数卷上一个系数为阶乘逆元的函数$O(nlogn)$然后快速插值就好了这里有一个优化:本来快速插值有一个多点求值的,这里直接用逆元$O(n)$算就好了$O(nlogn)$#include <bits/stdc++.h>usin ...
题解 P5394 [模板]下降幂多项式乘法
题面和普通多项式乘法一样,考虑点值直接0~n-1的点值比较方便然后颓颓柿子,发现点值的指数生成函数就是系数的普通生成函数卷上一个系数为阶乘逆元的函数于是$O(nlogn)$做就好了#include <bits/stdc++.h>using namespace std;typedef lo ...
题解 P2148 [SDOI2009]E&D
题面首先很明显博弈论打表SG函数#include <bits/stdc++.h>using namespace std;int SG[1010][1010], n;inline int mex(vector <int> v) { sort(v.begin(), ...
题解 P3480 [POI2009]KAM-Pebbles
题面首先很明显博弈论吧。。。然后单调递增数列的话,翻译一下就是差分数组非负然后手玩一下就会发现是阶梯nim,只不过从i移到i+1而已然后隔两个异或起来就是整个的SG了#include <bits/stdc++.h>using namespace std;int n, t, a[1010] ...
题解 P3727 曼哈顿计划E
题面首先学过博弈论的一眼就看出来要求链上权值的SG函数值异或和为0于是考虑搞出SG函数值,然后点分治乱搞打表得$k=1:SG(i)=i$$k=2:$当s为奇数,$SG(x)=x \mod 2$否则有一个$s + 1$的循环节$0,1,0,1,0,1\cdots0,1,2$$k=3:$$SG(x)=\ ...
题解 P3729 曼哈顿计划EX
题面首先两点之间的安全系数就是两点之间的最小割于是乎搞出最小割树,然后安全系数从大到小合并带权并查集#include <bits/stdc++.h>using namespace std;int s, t, n, m, q;struct edge { int v, f, ...
题解 P3730 曼哈顿交易
题面首先看到题面,想到莫队修改$O(n\sqrt n)$次,询问$O(n)$次使用的数据结构支持插入删除,k小为了平衡两部分复杂度,使用单点分块 插入$O(1)$询问$O(\sqrt n)$复杂度$O(n\sqrt n)$ 假设n,m同阶#include <bits/stdc++.h>u ...
题解 P3728 曼哈顿序列
题面如果要求的是第k小字串(即连续子序列),是可以用后缀自动机做的然而这道题要求第k小子序列其实序列自动机也是有的,而且构建及其简单状态有$n+1$个,第一个为根,后面的和字符串每一位一一对应对于第$i$位对应的状态,接收字符$c$后转移到$j$ 满足 j=\min_{x\in (i,n]~an ...