20分求助orz!!!P2141
  • 板块题目总版
  • 楼主Tlin_
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/8/10 12:48
  • 上次更新2023/10/27 16:08:50
查看原帖
20分求助orz!!!P2141
546567
Tlin_楼主2022/8/10 12:48

这道题本蒟蒻已经做了近一周,大大小小的修改多达十几处,从原来的单纯验证结果到后面加上了好几个查重程序,可是分数永远停留在20分。麻烦各位大佬救救本蒟蒻吧orz orz

#include <bits/stdc++.h>
#define MAXN 1000
using namespace std;
int main(){
    
	int a[MAXN], m[MAXN], n, sum, tmp=0, mmp=0;
	cin >> n;
	for ( int i=0; i<n; i++) {//输入
		cin >> a[i];
		m[i]=a[i];//这个数组用来去重
	}
	for ( int i=0; i<n; i++){
		for (int b=i+1; b<n; b++){//防止漏加
			if ( a[i]!=a[b]) sum =a[i]+a[b];//防止同一个数相加
			for ( int j=i; j<n; j++) {//验证
				if ( sum== m[j]){
					tmp++;
					mmp=m[j];
					m[j]=0;//去重
					sum=0;//防重
				}
				if ( mmp==m[j]) m[j]=0;//查重并去重
			}
		}
	}
	cout << tmp;//输出
	return 0;
}

(ps:本蒟蒻用的是暴力枚举方法,10个数字以下的随机数列和100个数字以下的等差数列都是没错的)

2022/8/10 12:48
加载中...