這裡的二分法主要是用來查詢。
這個題目還使用到了預處理的方法。注意:預處理也會消耗時間,所以不要超過百萬級別。
#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 ...