闲扯
今天的题真是毒瘤啊。
$@ChiTongZ$ 出来挨打!!
题面
$T1$
Solution
对于每次查询,我们相当于是知道了两个区间的关系。(即区间 $1\sim r$ 和区间 $1\sim l+1$ 的奇偶关系)
而对于两组关系,如果他们有相同的断点,是可以传递的。
例如我们知道了 $x,y$ 的关系,同时还知道了 $x,z$ 的关系,那么我们是可以推出 $y,z$ 的关系的。(为了方便,这里的 $x$ 表示区间 $1\sim x$ )
而我们最终要求的是每一组 $i$ 和 $i+1$ 的关系。
对于这种关系可以传递的东西,可以使用并查集维护。
这样问题就变成了用最小的代价,使得所有的点都存在于同一个集合里。
看着是不是很眼熟?没错,就是求一个最小生成树
Code
1 |
|
$T2$
Solution
考虑搜索,但是时间复杂度太高,所以模拟退火优化,卡一卡。
每次找两个格子,交换位置,答案更优就保留,否则按照某个随着随机次数增多而减小的概率保留答案。
Code
1 |
|
$T3$
Solution
对于 $90\%$ 的数据,我们可以用 $DP$ 解决。
设 $dp_{i,j}$ 表示第 $i$ 个节点,乘积为 $j$ 的方案数。
那么由子树向上维护时,得到转移方程 $dp_{u,k}=\sum_{ij=k}dp_{u,i}dp_{v,j}$ 。
由于运算过程中会出现覆盖,影响之后的计算,所以我们另外开一个数组来储存。
至于满分做法,使用 $NTT$ 来快速求解。
所以还是咕咕咕了吧
Code
1 |
|
总结
就一个子:出题人真滴毒瘤!!!