题解[GESP202606 五级]晚宴
2026-07-08 14:43:20
发布于:四川
8阅读
0回复
0点赞
我认为本次的五级题目不算太难,两道题都较为简单,知道gcd这道题基本就约等于2级难度了。
思路:
1.输入
2.双层循环
3.输出
思路是很简单的,重点是内部判断。
for(int j=1;j<=n;j++){
for(a[i]!=a[j]&&__gcd(a[i],a[j])==1){ //因为可能重复,又因数据范围提示,因此可以用不等号。接着用gcd判断互质
if(a[i]+a[j]>sum) sum=a[i]+a[j];
}
特殊说明:我用的是无优化的枚举,大家是可以优化的,这样运行时间更少。
接下来是完整代码:
# include <bits/stdc++.h> //邪恶万能头
using namespace std;
int main(){
int n,a[1005]={},sum=0;
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i]; //正常输入
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[i]!=a[j]&&__gcd(a[i],a[j])==1){ //因为可能重复,又因数据范围提示,因此可以用不等号。接着用gcd判断互质
if(a[i]+a[j]>sum) sum=a[i]+a[j];
}
}
}
cout<<sum;
return 0;
}
全部评论 1
详细👍
13小时前 来自 上海
0








有帮助,赞一个