模拟测试20191104
$T1:组合$
裸体的欧拉路径
$Hierholzer$跑一遍可以得到经过点的顺序
那个$map+vector$映射一下就可以得到经过的边了
$T2:统计$
首先设$f_{i}$表示i以后比$a_{i}$小的数的个数
那答案就是$\sum\limits_{i=1}^{n}f_{i}$
我们发现每次排序对答案的影响只在于被排序点的f归零
而每个点其实只需要改变一次
用线段树维护一下区间最小值就行了
$T3:点亮$
好久没有做过的一种$树p$类型
设$dp_{i,j,sta}$表示根到i的路径上点的状态为$sta$,$i$子树中点亮了$j$个点时的最大值
在每个点暴力合并子树跑背包,复杂度为$\sum\limits_{i=1}^{n}2^{dep_{i}}\times sz_{i}^{2}$
然而由于树随机生成,分析得到总复杂度约为$O(n^{2})$
注意$dp$数组直接开不下,可以用$vector$进行$dp$
因为状态数只有$\sum\limits_{i=1}^{n}2^{dep_{i}}\times sz_{i}$
${\color{Teal} 只}$${\color{Teal} 是}$${\color{Teal} 拼}$${\color{Teal} 凑}$${\color{Teal} 出}$${\color{Teal} 与}$${\color{Teal} 你}$${\color{Teal} 在}$${\color{Teal} 一}$${\color{Teal} 起}$${\color{Teal} 的}$${\color{Teal} 时}$${\color{Teal} 间}$