mooc 資料結構作業(一)範圍查詢 Range

2022-07-23 09:36:13 字數 1090 閱讀 7882

數軸上有n個點,對於任一閉區間 [a, b],試計算落在其內的點數。

第一行包括兩個整數:點的總數n,查詢的次數m。

第二行包含n個數,為各個點的座標。

以下m行,各包含兩個整數:查詢區間的左、右邊界a和b。

對每次查詢,輸出落在閉區間[a, b]內點的個數。

見英文題面

0 ≤ n, m ≤ 5×105

對於每次查詢的區間[a, b],都有a ≤ b

各點的座標互異

各點的座標、查詢區間的邊界a、b,均為不超過10^7的非負整數

記憶體:256 mb

題意:給一堆可能無序的點,查詢落在【a,b】區間的點個數

思路:無序點使用快速排序改為有序序列,然後使用二分查詢查詢a,b的位置

注意(1)查詢的是小於a的最大的位置,查詢的是b的最大的位置,相減即可

(2)輸入輸出使用scanf,printf,否則會超時

**如下:

1 #include2 #include3

using

namespace

std;

4int s[500005];5

intm,n;67

//二分查詢,返回不大於num的最後乙個元素

8int binsearch(int num,int lo,int

hi)else lo=mi+1;14

}15return --lo;16}

17int getpartition(int lo,int

hi)25 s[lo]=mi;

26return

lo;27}28

29//

快速排序

30void quicksort(int lo,int

hi)36}37

//注意輸入輸出太多,所以需要使用scanf,printf 加速輸入輸出

38int

main()

43 quicksort(0,m-1

);44

inta,b;

45for(int i=0;i)

51return0;

52 }

view code

mooc資料結構筆記(題來自mooc)

6 2 順序表操作集 20 分 本題要求實現順序表的操作集。list makeempty position find list l,elementtype x bool insert list l,elementtype x,position p bool delete list l,positio...

《資料結構》 陳越Mooc

第一章 基本概念 1.1什麼是資料結構 解決問題方法的效率跟資料的組織方式 空間的利用效率 演算法的巧妙程度有關。資料結構 資料物件在計算機中的組織方式。1 邏輯結構 個人存放資料的方式,如線性結構,樹狀結構 2 物理儲存結構 資料物件在機器中的放法 演算法 資料物件必定與加在其上的操作相關聯,這些...

MOOC 資料結構 第一周

1 有以下用c c 語言描述的演算法,說明其功能 void fun double y,double x,int n 解 計算x的n次方。2 乙個演算法的空間複雜度是o 1 那麼執行該演算法時不需要任何空間,這個說法正確嗎?為什麼?解 錯誤。若乙個演算法的空間複雜度為o 1 則稱此演算法為原地工作或就...