感覺時間複雜度還是太高了,一開始自己寫了個二分搜尋。比stl裡的要慢個幾毫秒。可能是資料量太少了,體現不出來。
#if 1
#include #include #include #include using namespace std;
#define my_max 1001
long dight[my_max]=;
int cmp(const void *a ,const void *b)
void solve(int n )
}} }
printf("no solution\n");
return ;
}int main()
return 0;
}#endif
ZOJ1101 賭徒 二分查詢
這道題原本老師說是雜湊的練習題,結果發現雜湊的 量忒大,然後就用二分了。有n個賭徒,如果乙個賭徒的錢數是其中三個的和那麼這個賭徒是贏家,輸出最多錢的贏家。輸入乙個整數n 1 n 1000 表示有n個賭徒。接下去n行各自輸入乙個整數 x 536870912 輸出每組測試資料的結果。如果沒有勝者則輸出 ...
ZOJ 1101 Gamblers 簡單搜尋
題目意思 求滿足a b c d的最大a。下面給出的解法時間複雜度為n 3log n 即先排序,查詢d a b c時用二分法。其實還有一種n 2log n 的解法,即先求出所有可能的b c,再對其排序,最後二分查詢a d是否在其中。include include include using names...
Java 二分搜尋 二分查詢
對陣列元素進行逐個查詢顯然是費時費力的工作,我們可以使用一些方法快速地搜尋出陣列中元素的指定位置.接下來我們介紹一種方法 二分搜尋法 二分搜尋法充分利用了元素間的次序關係.基本思想 將n元素分成個數大致相同的涼拌,取arr n 2 與欲查詢的x做比較,如果 下面將採用兩種方式 遞迴 非遞迴 來展示二...