遞推遞迴練習 P

2021-07-30 06:24:36 字數 625 閱讀 3592

題目要求:

給出含有n(1 <= n && n <= 3000000)個數的公升序序列,保證序列中的數兩兩不相等,這n個數編號從1 到n。

然後給出q(1 <= q && q <= 10000)次詢問,每次詢問給出乙個數x,若x存在於此序列中,則輸出其編號,否則輸出-1。

題目思路:

利用遞迴,二分查詢來寫程式,定義頭尾分別為m、n, 令mid=

(m+n)/2,若需要查詢的資料小於a[mid]則從左半邊開始查詢,若大於

a[mid]則從右半邊開始查詢,當等於a[mid],返回mid+1。

細節處理:

利用scanf函式輸入,printf函式輸出,防止程式超時。

#include

int a[

3000050

];ints(

int a,

int x,

int m,

int n)

else

return-1

;}intmain

()return0;

}

感悟:當程式本身沒錯誤但提交總是錯誤時不要放棄,嘗試各種方法,如此題若用cin、cout輸入輸出提交總是超時。

遞推遞迴練習 中的P題

題意就是利用二分查詢,從3000000個數中找出給定的數。先輸入數,再輸入要查詢的次數,然後輸入查詢的數。思路 看題目就知道,是利用二分查詢的方式快速找出給定的數。其他方法會tle,因為只給了600ms的執行時間。注意用scanf會減少輸入時間,比cin快,還有就是二分查詢怎麼找,判斷終止條件,找不...

遞迴遞推練習 1

有一對夫婦買了一頭母牛,它從第2年起每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。輸入乙個數求此時共多少牛。本題中的牛不死,而思路,設今年是第i年,i年的羊數等於i 1年數加上今年出生的羊,而新生小羊三年後可生羊,那麼i 3年內出生羊無生育能力,那麼i 3年有多少羊,i年...

遞推遞迴練習 G

題目要求 考試分配座位,老師會按照考好分配固定的座位,每兩個人之間至少留下兩個空座位,只關注教室一排座位,設每排有n 1 n 45 個座位,這一排至少坐乙個人的前提下,一共有多少種坐法。題目思路 n 45,所以直接利用迴圈求出1至45個座位的坐法,利用遞推,陣列a代表i個座位的坐法種數,a i a ...