這道題我直接好傢伙,方法就是二分時間,看看最短時間符不符合。
坑在於:
1.需要判斷a[i]是否等於0,不然有時候會re!
2.需要注意司機無論多少趟只能帶乙個。因為回來的時候也需要乙個人開車。
3.左右邊界盡量開到1e12。而且變數以防萬一都開long long,不然會超時。
#include
using
namespace std;
const
int n =
2e5+10;
long
long a[n]
;int n, m;
bool
judge
(long
long x)}if
(sum >= n)
return
true
;else
return
false;}
intmain()
sort
(a, a + n)
;long
long l =
0, r =
2e10+3
;while
(l < r)
cout << r << endl;
}
模版 整數二分
確定乙個區間,使得目標值一定在這個區間內 從題目中找到一種性質 根據上述的性質,具體可以把整數二分劃分為兩大類問題 第一類 目標值是前半段的右端點 將 l,r l,r l,r 分成 l,mid 1 l,mid 1 l,mid 1 和 mi d,r mid,r mid,r 如果mid midmi d處...
整數二分詳解
在公升序 無重複元素的陣列中,查詢值為k的元素的陣列下標 include include include using namespace std const int n 10 在給定陣列中查詢k值所在位置,若不存在則返回 1 l為二分下界,r為二分上界 intbinarysearch int a,i...
二分 整數二分和浮點數二分
一定是單調的才可以二分。找中間點 判斷是否滿足check函式 此函式需要自己根據題意調整,假設紅色區域為滿足check函式,說明mid在紅色區域內,此時要在mid到r之間找,l mid,否則r mid 1。由於此時l mid 所以中間點應為 l r 1 2 中間點mid l r 2 mid l r ...