CF934A A Compatible Pair 题解

Content

有两个数列 \(A\) 和 \(B\),\(A\) 数列里面有 \(n\) 个元素,\(B\) 数列里面有 \(m\) 个元素,现在请从 \(A\) 数列中删除一个数,使得 \(A\) 数列中剩下的任意一个元素与 \(B\) 数列中任意一个元素相乘得到的所有 \(m(n-1)\) 个值的最大值最小,求出这个最小值。

数据范围:\(1\leqslant n,m\leqslant 50,-10^9\leqslant A_i,B_i\leqslant 10^9\)。

Solution

数据范围这么小,我们为什么不直接枚举呢?

首先枚举在 \(A\) 数列中删除的数,然后枚举所有相乘得到的 \(m(n-1)\) 个值,求得最大值,再取最小,最后直接输出就好了。

提醒:这道题目相乘得到的结果可能很大,需要开 \(\texttt{long long}\)!

Code

int n, m;
ll a[57], b[57], ans = 0x3f3f3f3f3f3f3f3f;

int main() {
	getint(n), getint(m);
	_for(i, 1, n)	getll(a[i]);
	_for(i, 1, m)	getll(b[i]);
	_for(k, 1, n) {
		ll maxi = -0x3f3f3f3f3f3f3f3f;
		_for(i, 1, n)
			_for(j, 1, m)
				if(i != k)
					maxi = max(maxi, a[i] * b[j]);
		ans = min(ans, maxi);
	}
	writell(ans);
	return 0;
}
上一篇:【随机过程】14 - 离散时间马氏链与转移概率


下一篇:Linux *使用指南