11.排座题
2025-02-15 20:21:21
发布于:广东
1阅读
0回复
0点赞
思路:
题目要求给定教室大小,可以分排/行的数量,会讲话的同学对数,求出分排/行的位置
根据题意,先输入n,m,l,k,d(PS:我用的n,m与l,k是反的,不影响结果)
while输入d对讲话的同学的位置,因为这对同学必然在x,y上有一个不同,有一个相同,所以可以通过判断哪个相同,将另一部分的最小值所对应的数组位置加1,表示在这个位置分隔后能分开的同学对数加1
然后,遍历数组的两层,分别加入优先队列q1,q2,q1/q2是sum大的在前面,也就是可以分开的同学对数多的在前面,这样就能尽可能使分开的同学多一点
但是还没完,因为题目要求输出的是升序队列,也就是分隔的位置小的在前面,所以还得把q1的前l个,q2的前k个放入qq1,qq2,qq1/qq2是idx小的在前面,也就是分隔的位置小的在前面,再输出,我们就实现了升序输出,end
代码:
这里空空如也
有帮助,赞一个