二分查詢也稱折半查詢(binary search),它是一種效率較高的查詢方法。但是,折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列。
就是數學中的二分法一樣的思想
int
find
(int x)
//二分查詢
if(a[l]
==x)
return l;
//找都了就輸出他的位置
else
return-1
;// 沒找到輸出-1
}
luogu p2249
這是乙個完全模板的題目
}二分題目:
p2249
p1873
還有太多了
題目大意
給定乙個由1到n的數字組成的組成的序列,問最少需要幾步」剪下-貼上「操作才能使該數列變為公升序的有序數列。(1由題目可知,本題最壞的情況下也最多隻會移動n-1步(雖然在實際情況中最多只有5步),所以可以在搜尋的同時限制搜尋層數,既使用迭代加深。
繼續考慮每一層的情況,因為9!=362880,所以每一層的狀態非常的龐大,因此我們可以採用a*剪枝。
考慮每乙個序列後續不正確的數字個數h,每一次剪下最多3個數字後續數字發生改變,每次剪下最多可減少3個不正確的後續數字。所以在當前層d,最大層maxd時,最多可減少的不正確後續數字是3(maxd-d),若h>3(maxd-d),則剪枝。
#include
const
int maxn =9;
int n,a[maxn]
;inline
bool
end(
)return
true;}
inline
inth()
int maxd;
const
int intsz =
sizeof
(int);
const
int asz =
sizeof
(a);
bool
dfs(
int d)
}return
false;}
inline
intsolve()
intmain()
return0;
}
ACM暑假留校集訓總結
b汗 最初寫這東西竟然還是為了打發實踐報告 不過真的有好多想寫的 大一剛入校便通過學長知道了這個比賽,這個社團。起初搞acm的打算也是為了大一做一些有意義的事情,莫讓光陰虛度。一年的c c 的學習也讓我初步了解了程式設計的世界,養成了一些演算法思路,亦或者稱之為素質的東西,我想這些東西對我以後的學習...
ACM暑假集訓
出自 南昌理工學院acm集訓隊 什麼是母函式?生成函式即母函式,是組合數學中尤其是計數方面的乙個重要理論和工具。完全看不懂,話說要不因為做了杭電的1028,完全不會去用,好像母函式還有這幾種來著,l級數 貝爾級數和狄利克雷級數 這裡我就說說普通母函式吧 其他的我也不懂 母函式的思想很簡單 就是把離散...
大一暑假acm集訓總結
整整乙個月的acm集訓終於結束了。放鬆。頭一次早晨睡到9點,滿足。趁熱乎,寫一下總結吧。學習了兩個星期,差不多算是把譚浩強的c語言書又過了一遍吧,比較新奇的是用的os x系統的xcode軟體學的,感覺這個系統挺適合學習工作的,因為沒啥遊戲玩。因為我之前就把c語言學的差不多了 其實也很簡單,課本上所有...