T1:
题意:至少交换几次相邻字符,使得原串变成相邻串。
结论:每种字符必然前一半在前面,后一半在后面。
把最终的每个字符所到的位置求出来,用 BIT 求逆序对即可。
T2:
总之就是观察到 \(1,2\) 分出的两段必须递减,然后加个调和级数优化 DP 就行了。
T3:
多彩路径
题目描述
给定一个\(n\)个结点\(m\)条边的无向连通图,边\(1\sim m\)编号,其中\(i\)号边具有颜色\(w_i\)。保证该图不存在自环和超过2长度的简单环,但可能存在重边。可以理解为若把同一对结点间的所有重边合并为一条边,则会形成一棵树。
对某一条简单路径,定义该简单路径的“多彩值”为路径中相邻的异色边对数。即若其按顺序经过\(k\)条边编号为\(e_1,e_2,\cdots,e_k\),则“多彩值”为\(\sum_{i=1}^{k-1}(w_{e_i}\ne w_{e_{i+1}})\),其中不等判定成立则式子取1,否则取0。
请回答\(Q\)次询问,每次回答\(x,y\)两点间的所有简单路径的“多彩值”的最大值。
注意到如果两点之间有 \(\ge 3\) 条边,可以视作有一条独一无二的边。因此可以视作两点之间 \(\le 2\) 条边。
容易想到倍增 DP:\(dp[i][j][a][b]\):\(i\rightarrow fa[2^j][i]\) 的路径上,两端的边类型分别为 \(a,b\) 的最大多彩值。定义是 \(O(4n\log n)\) 的,转移则多枚举两个 \(A,B\) 即可,多乘个 \(4\)。
查询 \(u,v\) 就走到 LCA 然后拼起来即可。
写了个 \(3^4\) 的 …… 常数大五倍我都给卡进去了,愣是没想到不用处理三条边 ……
标签:11,字符,多彩,NOIP,路径,2024,条边,21 From: https://www.cnblogs.com/FLY-lai/p/18563446