题解 P1296 【奶牛的耳语】

· · 题解

题目不难。

先把所有奶牛的位置排成从小到大,然后再一头头判断。

比如说第i头奶牛,就比较第i头和第i+1头奶牛的距离,如果小于等于k(声音传播距离)就算一对。

注意排序用快排,不要用冒泡!你以为你是金鱼吗?

-#include <iostream>-
-#include <algorithm>-
-using namespace std;-
-int a[1000001],n,k,s=0;---s是总共有几对
-int main()-
-{-
-    cin>>n>>k;-
-    for(int i=1;i<=n;i++)cin>>a[i];-
-    sort(a+1,a+n+1);---快排,记得加头文件
-    for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++)if(a[i]+k>=a[j])s++;else break;---判断是否成为一对
-    cout<<s;---输出总数
-    return 0;-
-} -
机智地完成