给出了a1,a2,a3…an和b1,b2,b3…bn,确定n对(ai,bj),使所有和ai+bj的最大值最小.第一行输入包含一个整数N(1≤N≤100000),表示回合数。 接下来的N行包含两个整数A和B(1≤ A、B≤ 100),表示每一轮给出
时间: 2024-04-05 11:29:57 浏览: 87
我们第一行包括两个整数n,k(1<=n<=100,k<=6e5),表示有n个数字,目标和为k 第二行输入n个整数(c1 c2
这是一个经典的二分答案问题。我们可以二分答案mid,然后检查是否存在一种方案使得所有的(ai+bj)<=mid。具体的,我们可以对a数组进行排序,然后枚举b数组中的每个元素,用二分法在a数组中找到最大的不超过mid-bj的数,这个数的下标就是对应的ai。如果找不到这样的数,说明mid太小了,否则说明mid可以取得更小的值。
具体代码实现如下:
阅读全文