Submission #1156647

#TimeUsernameProblemLanguageResultExecution timeMemory
1156647fatman87878Let's Win the Election (JOI22_ho_t3)C++20
5 / 100
1018 ms4368 KiB
#include<bits/stdc++.h> using namespace std; #define IOS cin.tie(nullptr)->sync_with_stdio(0),cin.exceptions(cin.failbit); #define lb(x) (x)&-(x) #define all(x) (x).begin(),(x).end() #define ll long long #define db long double constexpr int maxN=5e2+5; int n,k; db dp[maxN][maxN]; pair<db,db> val[maxN]; inline db DP(int G){ for(int i = 0;i<=G;i++)for(int j = 0;j<=k;j++)dp[i][j] = 1e18; dp[0][0] = 0; for(int i = 0;i<n;i++){ auto [b,a] = val[i]; for(int j = k;j;j--) dp[G][j] = min(dp[G][j],dp[G][j-1] + a/(G+1)); if(i+1<=k)for(int j = G;j>=0;j--){ dp[j][i+1] = min(dp[j][i+1],dp[j][i] + a/(G+1)); if(j)dp[j][i+1] = min(dp[j][i+1],dp[j-1][i] + b/j); } } return dp[G][k]; } int main(){ IOS cin>>n>>k; for(int i = 0;i<n;i++){ cin>>val[i].second>>val[i].first; if(val[i].first==-1)val[i].first = 1e13; } sort(val,val+n); db ans = 1e18; for(int i = 0;i<k;i++)ans = min(ans,DP(i)); cout<<fixed<<setprecision(15)<<ans<<'\n'; }
#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...