Submission #1004008

#TimeUsernameProblemLanguageResultExecution timeMemory
1004008CSQ31Let's Win the Election (JOI22_ho_t3)C++17
16 / 100
1717 ms7480 KiB
#pragma GCC optimize("Ofast") #include<bits/stdc++.h> using namespace std; #define pb push_back #define fi first #define se second #define sz(a) (int)(a.size()) #define all(a) a.begin(),a.end() #define lb lower_bound #define ub upper_bound #define owo ios_base::sync_with_stdio(0);cin.tie(0); #define debug(...) fprintf(stderr, __VA_ARGS__),fflush(stderr) #define time__(d) for(long blockTime = 0; (blockTime == 0 ? (blockTime=clock()) != 0 : false);\ debug("%s time : %.4fs\n", d, (double)(clock() - blockTime) / CLOCKS_PER_SEC)) typedef long long int ll; typedef long double ld; typedef pair<ll,ll> PII; typedef pair<int,int> pii; typedef vector<vector<int>> vii; typedef vector<vector<ll>> VII; ll gcd(ll a,ll b){if(!b)return a;else return gcd(b,a%b);} ld dp[555][555]; int main() { owo int n,K; cin>>n>>K; vector<pii>t(n); vector<ld>a(n),b(n); for(int i=0;i<n;i++){ cin>>t[i].se>>t[i].fi; if(t[i].fi == -1)t[i].fi = 1e9; } sort(all(t)); for(int i=0;i<n;i++){ if(t[i].fi == 1e9)t[i].fi = -1; a[i] = t[i].se; b[i] = t[i].fi; } vector<vector<ld>> suff(n+1); for(int i=0;i<n;i++){ for(int j=0;j<=i;j++){ suff[i+1].pb(a[n-j-1]); } sort(all(suff[i+1])); } ld ans = 1e18; for(int k=0;k<K;k++){ for(int i=0;i<n;i++){ for(int j=0;j<=n;j++)dp[i][j] = 1e18; } dp[0][0] = a[0]/(k+1); if(b[0] != -1)dp[0][1] = b[0]; for(int i=1;i<n;i++){ for(int j=0;j<=i+1;j++){ dp[i][j] = min(dp[i][j],dp[i-1][j] + a[i]/(k+1)); if(j && b[i] != -1){ dp[i][j] = min(dp[i][j],dp[i-1][j-1] + b[i]/j); } } } // for(int i=0;i<n;i++){ // for(int j=0;j<=i+1;j++)cout<<dp[i][j]<<" "; // cout<<'\n'; // } for(int i=0;i<K;i++){ ld cost = dp[i][k]; vector<ld>lf; for(int j=0;j<K-i-1;j++)cost += suff[K-i-1][j]/(k+1); ans = min(ans,cost); } } cout<<fixed<<setprecision(5)<<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...