T1:
要求一个类似欧拉回路的东西
考虑其实就是将奇度数点两两配对,配对的代价为最短路长度,求最小代价
发现边权的特殊性(2^i),有一个很好的性质(sumlimits_{i=1}^{n-1}2^i < 2^n)
那么最短路就都是最小生成树上的路径
只需要跑出最小生成树,然后在树上配对就行了
T2:
神题OwO
将(i,j)->(i-j,j),相当于把三角形的每行斜着排
发现变为了将一个排列放入一个特定形状且满足(f_{i-1,j}<f_{i,j}&&f_{i,j-1}<f_{i,j})的方案数
这就是个杨氏矩阵,那么运用钩子公式解决即可
杨氏矩阵与钩子公式
T3:
又是神题OAO
考虑每个人的决策,实际上就是选择消除上次对方的操作或付出代价占得先手
考虑如果到了第n-1次a[n−1]之前没被翻转,那a[n]就会翻转,n mod 2那一方就会丢掉a[n]
令f[i]代表如果到了第i轮,a[i]之前没被翻转过,那么另外一方就会丢掉f[i]
发现f[i]等于从i开始的后缀最小值
那么对于是后缀最小值的位置一定会选择付出代价占得先手
所以设所有后缀最小值的位置集合为S
对于(i
otin S),i被i mod 2 一方得到
对于(i in S),i被last mod 2 一方得到,last为i在S中的前驱
因为权值只会减小,所以用个set维护就完了