數軸上有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 #include3view codeusing
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 }
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 則稱此演算法為原地工作或就...