不easy啊。。
一个小错误让我wa死了。找了一个晚上,怎么都找不到
最后是对拍代码找到的错误。发现当步数比較小的时候答案就是对的,比較大的时候就不正确了
想到一定是什么地方越界了。。
。
power[i] = (i64)(power[i - 1] * 26) % mod;
就是这行。。
。
改成 power[i] = ((i64)power[i - 1] * 26) % mod;
就过了。。。
这道题总的来说就是很综合,什么方面都涉及一点,核心部分还是把树转化成序列之后二分边界+RMQ,用dfn来确定边界的这种方法很好,很有意思
事实上另一种方法,就是先从u节点往下走一步。然后在trie里面找,这个时候能够直接确定位置。由于在trie中已经是有序的了
两种都能够,第一种相对来说好实现一点
(hdu如今怎么不会爆栈了。
。)