Submission #1194472

#TimeUsernameProblemLanguageResultExecution timeMemory
1194472biankLet's Win the Election (JOI22_ho_t3)C++20
23 / 100
2594 ms456 KiB
#include <bits/stdc++.h> using namespace std; #define forn(i,n) for(int i=0;i<int(n);i++) #define forsn(i,s,n) for(int i=int(s);i<int(n);i++) #define dforn(i,n) for(int i=int(n)-1;i>=0;i--) #define dforsn(i,s,n) for(int i=int(n)-1;i>=int(s);i--) #define fst first #define snd second #define pb push_back #define eb emplace_back #define sz(x) (int)x.size() #define all(x) x.begin(), x.end() typedef long long ll; typedef long double ld; typedef vector<ll> vll; typedef vector<int> vi; typedef pair<int,int> ii; const ld INF = 1e18; const int N = 500; template<typename T> void chmin(T &x, T v) { if (x > v) x = v; } pair<ld, int> dp[N]; const ld EPS = 1e-1; int main() { ios::sync_with_stdio(0); cin.tie(0); int n, k; cin >> n >> k; vector<pair<ll, ll>> x(n); forn(i, n){ cin >> x[i].snd >> x[i].fst; if (x[i].fst == -1) x[i].fst = 1e9; } sort(all(x)); ld ans = INF; auto check = [&](ld lmd, int c) { forn(a, c + 1) dp[a] = {INF, INF}; dp[0] = {0, 0}; forn(i, n) dforn(a, c + 1) { pair<ld, int> curr = dp[a]; curr.fst += ld(x[i].fst) / (a + 1); chmin(dp[a + 1], curr); curr = dp[a]; curr.fst += lmd + ld(x[i].snd) / (c + 1); curr.snd--; chmin(dp[a], curr); } dp[c].snd *= -1; dp[c].fst -= lmd * (k - c); return dp[c]; }; forn(c, k + 1) { ld lo = -1e11, hi = 1; while (hi - lo > EPS) { ld mid = (lo + hi) / 2; if (check(mid, c).snd >= k - c) lo = mid; else hi = mid; } chmin(ans, check(lo, c).fst); } cout << fixed << setprecision(10) << ans << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...