题解 CF1206A 【Choose Two Numbers】

这题其实完全可以桶解决

具体看代码吧

1
2
3
4
5
6
7
8
9
10
11
12
#include<bits/stdc++.h>
using namespace std;
int n,m,a[105],b[105];
bool s[505];//桶,因为a,b<=200,所以和实际上<=400
int main(){
scanf("%d",&n);
for (int i=1;i<=n;i++)scanf("%d",&a[i]),s[a[i]]=1;//丢进桶
scanf("%d",&m);
for (int i=1;i<=m;i++)scanf("%d",&b[i]),s[b[i]]=1;//丢进桶*2
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)if(!s[a[i]+b[j]])return !printf("%d %d",a[i],b[j]);//枚举,在a和b中各选一个,利用桶判有没有出现过
}