2017.12.24
貪心,分治綜合習題(2)
1.查詢最接近元素
思路:由題可知,n<=100000,m<=10000,如果每乙個m都把這個非降序序列掃一遍的話,那麼時間複雜的將要到達1010那麼多,明顯不合題意;所以,只能用二分查詢來優化時間複雜度。
核心**:
1 #include 2 #include 3 #includeview code4int
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 }
狀態:ac
2.全排列
思路:這個題目的資料範圍不大,k<=6,所以可以使用沒有任何優化的搜尋。題目保證輸入的字串是已經排好序的,所以可以就可以把輸入的字串作為乙個有序序列來使用。
核心**:
1 #include 2 #include 3 #includeview code4char letter[1000],answer[1000];5
int book[1000]=,l;
6void
print()
12void search(int
n)18
for(i=0;i)25}
26return;27
}28intmain()
狀態:ac
3.最大子段和
思路:詳見2017.12.25 的《詳解 最大子段和》
核心**:
1 #include 2 #include 3 #includeview code4int
main()
13 printf("%d"
,max);
14return0;
15 }
狀態: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 之間。第三...