【超时】在狐猬编程,部分结果显示我的代码超时,想请问可以怎么提高编译速度?

【超时】在狐猬编程,部分结果显示我的代码超时,想请问可以怎么提高编译速度?

【我的代码】

#include
using namespace std;
int n,m,x,a[100010],sum=0;
int main(){
    cin>>n>>m;
    for(long i=1;i<=n;i++){
        cin>>a[i];
    }
    sort(a+1,a+n+1);//排序
    //把重复的去掉
    for(long i=1;ifor(long j=i+1;j<=n;j++){
           if(a[j]==a[i]) {
                   for(long k=j;k1];
                   }
            n--;j--;
           }   
        }    
    }
    //选方案
    for(long i=1;ifor(long j=i+1;j<=n;j++){
           if(a[j]-a[i]==m) sum++;
        }    
    }
    cout<return 0;
    
} 

【结果】

img

【题目】
第3题 侦察 测试数据信息
小红通过简单的计算就求出了密码打开了沙盘,于是双方使用沙盘进行了攻城模拟。现在小红有n个侦察兵部队,要从两支部队选派2个侦察兵去侦察小蓝部队驻守的城市。为了使得侦察兵能更好配合完成工作,小红认为这2个侦察兵所在的部队编号必须相差为m。
现在已知n个侦察兵的部队编号,请问小红有多少不同的选择方案(同一部队的不同士兵视为同一方案)?
输入格式
第1行,2个整数n,m(2<=n<=100000,1<=m<=50)。
第2行,n个整数,第i个整数表示第i个侦察兵的部队编号(1<=部队编号<=1000)。
输出格式
一个整数,表示不同的方案数。

输入/输出例子1
输入:
5 6
1 7 2 8 12
输出:
2

输入/输出例子2
输入:
6 8
1 1 9 9 2 8
输出:
1

样例解释
样例1解释:第1个侦察兵可以跟第2个侦察兵搭档,第3个侦察兵可以跟第4个侦察兵搭档,所以有2种不同选择方案。

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7636926
  • 除此之外, 这篇博客: 单素数判断(根号n后再优化)和俄罗斯农民乘法(带证明),以及埃筛的证明中的 简单解释下普遍大家都知道的(给新手),就是为啥只到根号n。最开始其实终止条件是到n/2的,很简单嘛,因为n/2之后不可能存在n的因子,因为最小的因子2乘上一个任何一个大于n/2的数肯定比n大,所以之后不存在因子。那为啥能筛到根号n呢,是因为根号n的平方是n本身,根号n后面如果存在n的因子a,那么一定能在n之前找到n/a这个因子,只要有因子就不是素数了,所以没必要反复筛,前面筛完就已经知道不是素数了 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • #include<bits/stdc++.h>
    using namespace std;
    int main() 
    {
    	int n;
    	cin>>n;
    	if(n==2||n==3)
    	{
    		cout<<"是素数";
    	}
    	else if(n%6!=1&&n%6!=5)
    	{
    		cout<<"不是素数";
    	}
    	else
    	{
    		for(int i=2;i*i<=n;i++)
    		{
    			if(!(n%i))
    			{
    				cout<<"不是素数" ;
    				return 0;
    			}
    		}
    		cout<<"是素数";
    	}
    }