제출 #1306540

#제출 시각아이디문제언어결과실행 시간메모리
1306540vtnooLet's Win the Election (JOI22_ho_t3)C++20
11 / 100
227 ms2752 KiB
#include <bits/stdc++.h> #define pb push_back #define fst first #define snd second #define fore(i,a,b) for(int i=a,pao=b;i<pao;++i) #define SZ(x) ((int)x.size()) #define ALL(x) x.begin(),x.end() #define mset(a,v) memset((a),(v),sizeof(a)) #define FIN ios::sync_with_stdio(0);cin.tie(0);cout.tie(0) using namespace std; typedef long long ll; const int MAXN=505,INF=1e9; int A[MAXN],B[MAXN],v[MAXN]; void chmin(double &a,double b){ if(a>b)a=b; } int main(){FIN; int n,k;cin>>n>>k; iota(v,v+n,0); fore(i,0,n){ cin>>A[i]>>B[i]; if(B[i]==-1)B[i]=INF; } sort(v,v+n,[&](int a,int b){ return B[a]<B[b]; }); double ans=INF; fore(C,0,n){ vector<vector<double>>dp(n+1,vector<double>(C+1,INF)); dp[0][0]=0; fore(i,0,n){ //~ fore(j,0,k+1){ fore(l,0,C+1){ //~ chmin(dp[i+1][j][l],dp[i][j][l]); // no lo uso int ii=v[i]; chmin(dp[i+1][l],dp[i][l]+(double)A[ii]/((double)C+1)); if(l<C)chmin(dp[i+1][l+1],dp[i][l]+(double)B[ii]/((double)l+1)); } //~ } } chmin(ans,dp[n][C]); } cout<<fixed<<setprecision(20)<<ans<<endl; }
#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...