P5804 Absolute Game
结论:这个游戏等价于 Alice 先选一个数
证明:从 Bob 的角度出发。首先 Alice 可以选择任意数结束游戏,所以 Bob 显然得不到更好的结果。接下来我们构造地证明,无论
对于 Alice 手里的每个数
考虑每次 Alice 扔掉了一个数
由此我们得到本题做法:求出
时间复杂度
#include<bits/stdc++.h>
using namespace std;
const int N=1005;
const int inf=1000000005;
int n,a[N],b[N],ans;
int main(){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++) cin>>b[i];
sort(a+1,a+n+1); sort(b+1,b+n+1);
for(int i=1;i<=n;i++){
int j=lower_bound(b+1,b+n+1,a[i])-b;
int c=inf;
if(j<=n) c=min(c,b[j]-a[i]);
if(j>1) c=min(c,a[i]-b[j-1]);
ans=max(ans,c);
} cout<<ans<<'\n';
return 0;
}