avatar

目录
题解 CF1206A 【Choose Two Numbers】

解题方案

怎么样才能让选出来的 $a$ 在 $A$ 数组里, $b$ 也在 $B$ 数组里,可 $a+b$ 却不在任何一个数组里呢?

很简单,取两个数组的最大值即可。

为什么?因为题目保证数组里的每一个数都 $\ge 1$,那么 $a+b$ 肯定大于 $A$ 数组里最大的一个数,也大于 $B$ 数组里最大的一个数,那么题目就变成了分别求两个数组里最大的数。

代码1

cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<bits/stdc++.h>
using namespace std;
int a[101],b[101];//定义数组
int main(){
int n,m;
cin>>n;
for(int i=1;i<=n;++i){cin>>a[i];}//一个个输入
cin>>m;
for(int i=1;i<=m;++i){cin>>b[i];}
sort(a+1,a+1+n);//排序
sort(b+1,b+1+m);
cout<<a[n]<<" "<<b[m];//输出最大值
return 0;
}

代码2

不用数组。

cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<bits/stdc++.h>
using namespace std;

int main(){
int n,m,a=-1,b=-1;
cin>>n;
for(int i=0;i<n;++i){
int tmp;//定义临时变量
cin>>tmp;
a=max(tmp,a);//实时更新最大值
}
cin>>m;
for(int i=0;i<n;++i){
int mtp;
cin>>mtp;
b=max(mtp,b);//实时更新最大值
}
cout<<a<<" "<<b;
return 0;
}

文章作者: lianjiaming
文章链接: http://lianjiaming.github.io/2020/03/11/solution-CF1206A/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Jimmy_Lian的博客

评论