1
已解决
周琪岳
资深光能
资深光能
合肥35届信息学竞赛 3685 力量对比(power)
https://ke.codingtang.com/#/problem/problemSub?id=3685
#include <iostream>
#include <cstdio>
#include <string>
#include <cmath>
#include <algorithm>
using namespace std;
int cnt,a[1010];
int main(){
int n;
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[j]==a[i]) continue;
bool flag=0;
for(int k=1;k<=n;k++){
if(a[k]==a[j]||a[k]==a[i]) continue;
if(a[i]==a[j]+a[k]){
cnt++;
flag=1;
break;
}
}
if(flag=1) break;
}
}
cout<<cnt;
return 0;
}
以上代码得10分
请会的同学们帮忙改正 不要代码
本人仅学到结构体排序 不要用此之外的方法
若能解决 万分感激(附30酷町币)
0
已采纳
余彦文
初级光能
初级光能
可以把j=1改成j=i+1,这样就抛掉了一个判断
先暴力2重循环,枚举两个不同的人
再拿一个数存两个人的和,再循环看看这些人里有没有和这个数是一样的
如果有,cnt++,否则continue
剩下的重复问题自己想
0
0
0
董宇昊
初级启示者
初级启示者
你应该再定义一个数组b[2005]
核心代码:
- for(int i=1;i<=n-1;i++){
- for(int j=i+1;j<=n;j++){
- b[a[i]+a[j]]++;
- }
- }
0