T1
搜索剪枝优化。
使用迭代加深搜索,然后弄一个估价函数,即相差>1的相邻数对的数量,加上求出解就不继续搜索即可通过。
比较奇妙,复杂度玄学。
T2
显然对于一条链,每次只能删一个。那么将图缩点形成 DAG ,然后求最长链的长度即为答案。
T3
一道奇妙的AC自动机上跑状压DP的题。
首先将原串和颠倒取反串放进去,记结束在vis。然后考虑跨越中点的情况。考虑对于原串和颠倒取反串,把某个过半的前缀取反与后面构成回文的话,记录在ed。
那么对于一条路径,把路径上的vis或起来,再或上结束点的ed,如果为全集的话即为合法。那么就朴素的 \(2^nnm|S|\) 即可。