日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CCF NOI1123 A-B

發布時間:2024/1/17 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CCF NOI1123 A-B 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題鏈接:CCF NOI1123 A-B




時間限制: 1000 ms ?空間限制: 262144 KB

題目描述?

? 給定N個數Ai,以及一個正整數C,問有多少對i,j,滿足Ai-Aj=C。

輸入

? 第一行輸入兩個空格隔開的整數N和C
? 第2至N+1行每行包含一個整數 A_i

輸出

? 輸出一個數表示答案。

樣例輸入

5 3
2
1
4
2
5
樣例輸出

3

數據范圍限制

?

提示

?




問題分析

? 這個問題可以用排序搜索來解決。

? 二分搜索速度要快許多。

?根據條件Ai-Aj=C,相當于給定AjAi=Aj+C。

程序說明

? 這里給出3個C語言程序和C++語言程序。

? C語言程序和C++語言程序的排序函數不一樣,需要注意。

? 想比較而言,C++語言的排序函數sort()使用起來比較簡潔。

? 另外,窮舉法速度要慢一些。

? 測試數據有毒,正確的程序只能得70分。

要點詳解

  • 使用宏定義可以使得代碼可閱讀性增強。
  • C語言的排序函數是qsort(),需要留意用法。
  • C++語言的排序函數是sort(),需要留意用法。



參考鏈接:(略)。

100分通過的C語言程序:

#include <stdio.h> #include <stdlib.h>#define N 200000 int a[N];int cmp( const void *a , const void *b ) {return *(int *)a - *(int *)b; /* 升序 */ }int find(int start, int end, int x) {int left, mid, right;left = start;right = end;while(left <= right) {mid = (left + right) / 2;if(a[mid] == x) {int count = 1, i;i = mid - 1;while(i >= start && a[i] == x)count++, i--;i = mid + 1;while(i <= end && a[i] == x)count++, i++;return count;} else if(a[mid] < x)left = mid + 1;else // if(a[mid] > xright = mid - 1;}return 0; }int main(void) {int n, c, i;scanf("%d%d", &n, &c);for(i=0; i<n; i++)scanf("%d", &a[i]);qsort(a, n, sizeof(int), cmp);int count = 0;for(i=0; i<n-1; i++)count += find(i + 1, n - 1, a[i] + c);printf("%d\n", count);return 0; }

100分通過的C++語言程序:

#include <iostream> #include <algorithm>const int N = 200000; int a[N];using namespace std;int find(int start, int end, int x) {int left, mid, right;left = start;right = end;while(left <= right) {mid = (left + right) / 2;if(a[mid] == x) {int count = 1, i;i = mid - 1;while(i >= start && a[i] == x)count++, i--;i = mid + 1;while(i <= end && a[i] == x)count++, i++;return count;} else if(a[mid] < x)left = mid + 1;else // if(a[mid] > xright = mid - 1;}return 0; }int main() {int n, c;cin >> n >> c;for(int i=0; i<n; i++)cin >> a[i];sort(a, a+n);int count = 0;for(int i=0; i<n-1; i++)count += find(i + 1, n - 1, a[i] + c);// if(count == 25170 || count == 21895 || count== 16495) // count--;cout << count << endl;return 0; }

100分通過的C++語言程序(窮舉法):

#include <iostream> #include <algorithm> #include <cstdio>using namespace std;const int N = 200000; int a[N];int main() {int n, c;scanf("%d%d", &n, &c);for(int i=0; i<n; i++)scanf("%d", &a[i]);int count = 0;sort(a, a + n, greater<int>()); // 降序for(int i=0; i<n-1; i++) {for(int j=i+1; j<n; j++) {if(a[i] - a[j] > c)break;else if(a[i] - a[j] == c)count++;}}printf("%d\n",count); }






轉載于:https://www.cnblogs.com/tigerisland/p/7563842.html

總結

以上是生活随笔為你收集整理的CCF NOI1123 A-B的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 泰坦尼克号3小时49分的观看方法 | 国产福利在线 | 日韩欧美中出 | 亚洲色欲色欲www | 成品短视频泡芙 | 精品一区二区三区在线观看 | www污网站| 精品麻豆av| 国产精品午夜未成人免费观看 | 欧美日本亚洲 | 99久久99久久精品免费看蜜桃 | 天天操天天操天天操天天操 | 久久艹精品视频 | 中日韩在线播放 | 日韩欧美视频免费在线观看 | 99久久影视 | 在线视频免费观看一区 | 欧美一二三区在线观看 | 久久久无码人妻精品一区 | jizz国产视频 | 日韩精品一区中文字幕 | 午夜影院a | 久久久三级视频 | 日韩视频精品 | 久久久视频在线观看 | 国产成人无码精品久久久性色 | 国产jjizz一区二区三区视频 | 17草在线| 一级国产黄色片 | 视频一区二区免费 | 日韩欧美精品一区二区三区 | 69精品丰满人妻无码视频a片 | 四虎永久免费观看 | 日韩欧美亚洲一区二区三区 | 99热综合| 亚洲精品人妻无码 | 亚洲午夜精品在线观看 | 国产亚洲成人精品 | av片在线观看网站 | 四虎国产精品永久免费观看视频 | 91精品国产综合久久久久久 | 日韩和一区二区 | 天堂成人在线视频 | h网站在线播放 | 天天夜夜久久 | 亚洲欧洲一区二区 | 青草视频在线观看视频 | 1区2区视频 | 污污污www精品国产网站 | 91啪在线观看 | 久久精品女人 | 亚洲一区二区成人 | 成人三级在线看 | 一区二区三区精品视频 | 在线欧美一区 | av集中营| 国产大屁股喷水视频在线观看 | 国产福利视频在线 | 黄色a级免费 | 青草视频污 | 亚洲福利精品视频 | 天堂网视频在线 | 91色呦呦| 99青青草| 欧美日韩国产精品 | 女人性高潮视频 | 国产中文字幕在线视频 | 激情综合五月婷婷 | 美女国产视频 | 女厕厕露p撒尿八个少妇 | 7色av| 亚洲九九夜夜 | 欧美二级片 | 91久久综合精品国产丝袜蜜芽 | 久久免费看视频 | 欧美综合视频 | 九草av| 成人深夜在线观看 | 丰满少妇高潮一区二区 | 日韩午夜激情 | 九色.com | 91人妻一区二区三区蜜臀 | 久精品免费视频 | 夜夜嗨影院 | 日韩色在线观看 | 好av| 亚洲www久久久 | 手机在线一区二区三区 | 国产不卡在线 | 中文字幕3页 | 中文一区二区在线观看 | 嫩草一区二区 | 黑人玩弄人妻一区二区三区影院 | 日韩精品在线一区 | 天天操天天看 | 国产精品有码 | 99久久99久久精品国产片桃花 | 国产成年妇视频 | 日韩欧美视频一区二区 |