二分法 簡單習題實戰入門

2021-09-19 10:29:23 字數 1518 閱讀 6499

這裡的二分法主要是用來查詢。

這個題目還使用到了預處理的方法。注意:預處理也會消耗時間,所以不要超過百萬級別。

#include

using

namespace std;

typedef

long

long ll;

const

int n=

10000000

;ll num[n]

;void

init()

}int

main()

ll tmp=n-num[i]

;/*

for(int j=i; j<=n; j++)

if(num[j]==tmp)}*/

//應該使用二分查詢,避免超時

int begin=i, end=n;

while

(begin<=end)

if(num[mid]

else end=mid-1;

}if(flag==1)

break;}

if(flag==1)

else

printf

("no\n");

}return0;

}

#include

using

namespace std;

typedef

long

long ll;

ll maxnum=

1e12

+100

;//根據題目的輸入要求,答案最多是這樣

char str[

105]

;int nb, ns, nc;

int pb, ps, pc;

ll r;

int b=

0, s=

0, c=0;

bool

judge

(ll x)}if

(x*s>ns)}if

(x*c>nc)

}return

true;}

intmain()

else

if(str[i]

=='s'

)else c++;}

ll ans=0;

// 使用模擬的方法會超時

/* while(r>0)

}else nb-=b;

if(s>ns)

}else ns-=c;

if(c>nc)

}else nc-=c;

ans++;

} */

ans=0;

ll begin=

0, end=maxnum;

while

(begin<=end)

else end=mid-1;

}printf

("%lld\n"

, ans);}

return0;

}

二分法(入門)

給定精確度 用二分法求函式f x 零點近似值的步驟如下 1 確定區間 a,b 驗證f a f b 0,給定精確度 2 求區間 a,b 的中點c.3 計算f c 1 若f c 0,則c就是函式的零點 2 若f a f c 0,則令b c 3 若f c f b 0,則令a c.4 判斷是否達到精確度 即...

C 二分法查詢,遞迴二分法

用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...

python二分法查詢 Python 二分法查詢

二分法查詢主要的作用就是查詢元素 lst 1,3,5,7,12,36,68,79 資料集 百萬級資料 num int input 請輸入你要查詢的元素資訊 for el in lst if num el print 存在 break else print 不存在 len lst 0 1 2 3 4 ...