http://acm.hdu.edu.cn/showproblem.php?pid=4358
map 版本
比赛的时候也用map 写了 不过没有加优化 所以超时了
调试了一上午 下午自己出数据测了一下才知道那里出错了 汗
大体思路:
用map<int , int > 保存子树某个数出现的次数 然后从叶子节点向上更新合并 合并的时候需要 size小的向size大
的上面合并 这样省时 这是由map 的构造决定的
用c++ 提交要 手动开栈 否则会栈溢出 用G++ 提交可以避免但花费时间要长一些
自测数据 对我来说很重要的一组数据 就是这里错了一上午
1
6 1
1 2 3 4 5 6
1 2
1 3
3 4
3 5
1 6
6
1
2
3
4
5
6
详情及其细节见代码及其注释: