摘要:
题面 "题目传送门" 解法 同小Z的袜子 代码 cpp include define int long long define N 50010 using namespace std; template void read(node &x) { x = 0; int f = 1; char c = 阅读全文
摘要:
题面 "题目传送门" 解法 可以直接将所有1全部放置在主对角线上,这样并不会影响答案 然后就是一个比较简单的错位排列了 需要高精度 代码 cpp include using namespace std; template void read(node &x) { x = 0; int f = 1; 阅读全文
摘要:
题面 "题目传送门" 解法 题如其名…… 不妨将多项式的$x^i$变成$10^i$,然后就是一个比较简单的FFT了 md读进来的是一个字符串,并且要倒序 最后注意进位问题 时间复杂度:$O(n\ log\ n)$ 代码 cpp include define N 1 void read(node &x 阅读全文
摘要:
题面 "题目传送门" 解法 如果没有换根,就是树剖+线段树的板子题 如果有换根,看当前的根是否为$x$的后代,如果不是,那么$x$的子树不会受到任何影响,如果是,那么直接删除对应区间然后求最小值即可 时间复杂度:$O(q\ log^2\ n)$ 代码 cpp include define N 100 阅读全文
摘要:
题面 "题目传送门" 解法 可以发现,题目可以转化成求若干个形如$\sum_{i=1}^ni^k$的东西 这个东西可以拉格朗日插值 大概讲一下拉格朗日插值是个什么东西: 显然,$\sum_{i=1}^ni^k$可以用一个$k+1$次多项式表示出来 那么,将$x_i=1,2,…k+1$代入,求得$y_ 阅读全文
摘要:
题面 "题目传送门" 解法 设$f_{i,j}$表示序列中已经有$1 i$,逆序对总数为$j$的方案数 考虑如何转移到$f_{i,j}$ 即将$i$插入到$1$至$i 1$的序列中,产生的影响范围为$0$到$i 1$ 从而可以得到转移方程:$f_{i,j}=\sum_{k=j i+1}^if_{i 阅读全文
摘要:
题面 "题目传送门" 解法 有向图Matrix Tree定理的裸题吧…… 若$(i,j)$有边,那么$a_{i,j}= 1$,$a_{i,i}=d_i$,$d_i$为点$i$的出度 因为以1为根,所以只要求出$2 n$的行列式即可 md高斯消元写错一个东西照样90……数据是真的弱 时间复杂度:$O( 阅读全文
摘要:
题面 "题目传送门" 解法 第一问超简单 ~~第二问看题解吧~~ "%%%%%" 如果不是随机的这可能会T 其实感觉第二问挺玄学的 代码 cpp include define int long long define N 50010 using namespace std; template voi 阅读全文
摘要:
题面 "题目传送门" 解法 先看一看部分分 1 6 直接用dijkstra求最短路,然后判断一下即可 时间复杂度:$O((n+m)\ log\ n)$ 期望得分:$30$ 7 11 倍增求出路径上的最小值,然后比较一下即可 时间复杂度:$O(q\ log\ n)$ 期望得分:$30+25=55$ 1 阅读全文
摘要:
题面 "题目传送门" 解法 用可持久化线段树维护每一个点的父亲,不能路径压缩 直接暴力一步一步跳即可 注意要启发式合并 时间复杂度:$O(q\ log^2\ n)$ 代码 cpp include define PI pair define mp make_pair define N 200010 u 阅读全文