是否正解?
查看原帖
是否正解?
432533
沃尔特科长楼主2022/4/17 17:04

RT,在考场上YY出了一种做法

虽然程序挂了()

大概就是说把括号按包含关系建树,然后对于深度相同的所有括号建一个fhq,权值为括号对的左括号权值。

因为(A)(B)->(A()B)本质上就是把一个括号和它的儿子都变成成另一个括号的儿子

没有讨厌序列的本质就是这棵树每一层都只有一个节点

x=y=1就是把权值最大的括号留在那一层,其他的都放下去

x=0,y=1也是把权值最大的括号留在那一层,其他的都放下去

x=1,y=0要判定一下是把最小括号放下去还是把次小括号放下去

然后从层数浅的向下贪心计算答案,用启发式合并合并相邻两层的fhq

总时间复杂度是O(nlogn)(要查询最小值次小值最大值查询n次,合并平均合并nlogn次)

常数貌似也不算太大()所以是正解吗()

2022/4/17 17:04
加载中...