Submission #1188746

#TimeUsernameProblemLanguageResultExecution timeMemory
1188746SoulKnightLet's Win the Election (JOI22_ho_t3)C++20
0 / 100
2596 ms4436 KiB
#include "bits/stdc++.h" using namespace std; #define int long long #define double long double #define ln '\n' #ifdef LOCAL #define gg(...) logger(#__VA_ARGS__, __VA_ARGS__) template<typename ...Args> void logger(string vars, Args&&... values) { cout << vars << " = "; string delim = ""; (..., (cout << delim << values, delim = ", ")); cout << '\n'; } #else #define gg(...) #endif array<int, 2> a[505]; double dp[505][505]; void solve(){ int n, k; cin >> n >> k; for (int i = 1; i <= n; i++){ cin >> a[i][1] >> a[i][0]; if (a[i][0] == -1) a[i][0] = 2e9; } memset(dp, 0x4f, sizeof(dp)); double ans = 5e18; for (int worker = 1; worker <= k; worker++){ sort(a+1, a+n+1); dp[0][1] = 0; for (int i = 1; i <= n; i++){ auto [getWorker, getVote] = a[i]; for (int j = 1; j <= worker; j++){ dp[i][j] = min( (j-1 == 0? 1e18: (double)getWorker / (double)(j-1)) + dp[i-1][j-1], (double)getVote / (double)worker + dp[i-1][j] ); } } for (int i = k; i <= n; i++) ans = min(ans, dp[i][k]); for (int i = k; i >= worker-1; i--){ sort(a+i+1, a+n+1, [&](const array<int,2>& x, const array<int,2>& y){ return x[1] < y[1] || (x[1] == y[1] && x[0] < y[0]); }); double cur = 0.0; for (int j = i+1; j <= k; j++){ cur += a[j][1]; } ans = min(ans, cur / (double)(worker) + dp[i][worker]); } } cout << fixed << setprecision(16) << ans << ln; } signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); solve(); // int TT; cin >> TT; // while (TT--) solve(); 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...