2017 12 24 查詢最接近元素,全排列等

2022-05-10 04:56:02 字數 1399 閱讀 8938

2017.12.24

貪心,分治綜合習題(2)

1.查詢最接近元素

思路:由題可知,n<=100000,m<=10000,如果每乙個m都把這個非降序序列掃一遍的話,那麼時間複雜的將要到達1010那麼多,明顯不合題意;所以,只能用二分查詢來優化時間複雜度。

核心**:

1 #include 2 #include 3 #include 

4int

main()

22else

if(k>num[mid])

23 left=mid;

24else

if(k

25 right=mid;26}

27if(num[right]-k0)30

else

if(num[right]-k>=k-num[left]&&bz==0)33

}34return0;

35 }

view code

狀態:ac

2.全排列

思路:這個題目的資料範圍不大,k<=6,所以可以使用沒有任何優化的搜尋。題目保證輸入的字串是已經排好序的,所以可以就可以把輸入的字串作為乙個有序序列來使用。

核心**:

1 #include 2 #include 3 #include 

4char letter[1000],answer[1000];5

int book[1000]=,l;

6void

print()

12void search(int

n)18

for(i=0;i)25}

26return;27

}28intmain()

view code

狀態:ac

3.最大子段和

思路:詳見2017.12.25 的《詳解 最大子段和》

核心**:

1 #include 2 #include 3 #include 

4int

main()

13 printf("%d"

,max);

14return0;

15 }

view code

狀態:ac

查詢最接近的元素

總時間限制 1000ms 記憶體限制 65536kb 描述在乙個非降序列中,查詢與給定值最接近的元素。輸入第一行包含乙個整數n,為非降序列長度。1 n 100000。第二行包含n個整數,為非降序列各元素。所有元素的大小均在0 1,000,000,000之間。第三行包含乙個整數m,為要詢問的給定值個數...

查詢最接近的元素

在乙個非降序列中,查詢與給定值最接近的元素。input 第一行包含乙個整數n,為非降序列長度。1 n 100000。第二行包含n個整數,為非降序列各元素。所有元素的大小均在0 1,000,000,000之間。第三行包含乙個整數m,為要詢問的給定值個數。1 m 10000。接下來m行,每行乙個整數,為...

查詢最接近的元素

在乙個非降序列中,查詢與蒜頭君的給定值最接近的元素。輸入格式 第一行包含乙個整數 nn,為非降序列長度。1 le n le 1000001 n 100000。第二行包含 nn 個整數,為非降序列各元素。所有元素的大小均在 0 sim1,000,000,0000 1,000,000,000 之間。第三...