这道题本身是个很基础的BST,作为C++党可以用set的我也已经AC,但是我不得不说这道题标程有问题。首先一点,把操作2和操作3搞反了(这样会WA10)!其次,题目里面并没有说明最便宜(贵)的花有多朵时是否是删去W最小的一朵,好,那我们认为数据会避免这种情况。另外由题中“删除最便宜的一朵花”可知当W一样时,应该任意删去一朵花而非全部,所以我们应该使用可重集multiset而非set。事实是如果这样做会WA40,而当把multiset改成set之后会AC。如果认为当C,W一样时,花全部删去,也同样应该使用multiset,因为不是最便宜(贵)的花可能有多朵一样,如果使用set则在计算W之和的时候只会计算其中一朵的。使用set无论怎样解释都会自相矛盾。而如果数据里面真的没有完全一样的情况下,我用multiset只能说过于小心,结果应该和set一样,事实是不一样,也就是数据里面确实有一样的情况。pascal党我真不知道应该怎么过了,估计这题只有C++党用set能过了……