题目编号:P3243 [HNOI2015] 菜肴制作
总体思路:一边拓扑一边标记每一组限制的分组,深度,和大小,然后进行排序。
排序思路是在组别相同时,说明需要满足先后关系(体现在深度上)并且深度不同才会进行深度从小到大排序,深度相同让数值大小小的靠前,不是同一组的就按照数值大小排序。
用了sort排序,排序操作如下:
int cmp(pp a,pp b){
if(a.group==b.group&&a.dep!=b.dep){
return a.dep<b.dep;
}
return a.large<b.large;
}
排序效果如下:
排序前:
排序后:
问题可能出现在两两交换与宏观思想不匹配。
有没有大佬知道这样排序会出错的真正原因,如何改进排序策略或者是换一种排序方法?
感谢大佬的帮助!