今天做的第三道二分的題目。這次是在實數域上二分,犯了很多不必要的錯誤www
在實數域上二分要預先確定好精度 \(eps\) 。在這道題上,\(eps\le 10^\) 比較保險。
我們還是考慮二分答案。對於每乙個二分到的答案,我們這樣判定合法性:
所有裝置的消耗能量速度總和小於充電器的充電速度,輸出 \(-1\)。
時間複雜度 o(n \log k) 。其中 \(k\) 是乙個很大的數字。
#include #include #include #include using namespace std;
const double eps = 1e-5;
const int maxn = 1000005;
typedef double db;
int n;
double p, sum = 0;
db a[maxn], b[maxn];
bool check(db ans) return real <= maxx;
}int main() if(sum <= p) return puts("-1") & 0;
double l = 0.0, r = 1e10, mid;
while(r - l > eps) printf("%.10lf", l);
}
洛谷P3743 kotori的裝置
題目大意 有 n 個裝置,每個裝置每秒共減少 a i 能量 也就是說每一瞬間都在減少,而不是在乙個時刻突然減少 開始前有 b i 能量,還有乙個充電寶,無限能量,每秒共可以提供 p 的能量 也是每一瞬間都在提供 求 最多可以用多久 題解 二分答案,比較這段時間中充電寶可以提供的電量和消耗的電量即可 ...
kotori的裝置 實數域上二分答案
見 本題可以採用實數域上二分答案進行求解,正常的實數域二分模板,那麼如何判斷呢.我是先在輸入時變算好了該裝置可以堅持的時間t,將二分的mid值與t進行比較,如果t mid,那麼對於該裝置來說他可以不充電就執行mid時間,如果tmid那麼mid值就無法滿足,所以讓r mid,反之讓l mid 二分區間...
洛谷P4304 TJOI2013 攻擊裝置 題解
最大獨立集 總點數 最大匹配數 獨立集 點集,圖中選一堆點,這堆點兩兩之間沒有連邊 最大獨立集 盡可能多得選點,使得其滿足獨立集的性質 這是網路流二分圖經典題目,值得練習 include include include using namespace std int x 9 int y 9 stru...