二分求调,dalao救命呜呜呜

P1843 奶牛晒衣服

@[Otion](/user/843596) right取值好像不太对
by Otion @ 2023-02-28 14:43:45



by Otion @ 2023-02-28 14:47:05


@[Otion](/user/843596) 这个还有一个点没过 ``` #include <iostream> using namespace std; int total_item; int dry; int sup_dry; const int N = 500500; int wet[N]; bool check(int time) { long long dry_already = time * dry; int super_time = time; for (int i = 1; i <= total_item; i++) { if (wet[i] - dry_already > 0) { if ((wet[i] - dry_already) % sup_dry != 0) { super_time -= (wet[i] - dry_already) / sup_dry+1; } else { super_time -= (wet[i] - dry_already) / sup_dry; } } else { continue; } } if (super_time < 0) { return false; } else { return true; } } int most_wet; int ans; int main() { cin >> total_item >> dry >> sup_dry; for (int i = 1; i <= total_item; i++) { cin >> wet[i]; most_wet = max(most_wet, wet[i]); } double left = 0; double right = most_wet / dry + dry; while (left <= right) { double mid = (left + right) / 2; if (check(mid)) { ans = mid; right = mid-1; } else { left = mid + 1; } } cout << ans << endl; return 0; } ```
by Otion @ 2023-02-28 14:54:55


|