Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
32896 A21μΘ_wjy 【S】T1 C++ 运行超时 70 1000 MS 384 KB 945 2024-10-02 14:11:32

Tests(7/10):


#include<bits/stdc++.h> #define int long long #define doub long double using namespace std; const int INF=1e9+7; const int maxn=1e3+7; const int maxm=5e3+7; int n,m; int a[maxn]; int val[maxm]; int dp[maxm]; int tmp[maxm]; int cnt(int x){ int l=1,r=n; if(x<a[1])return n; if(x>=a[n])return 0; while(l<r){ int mid=l+r>>1; if(a[mid]>x)r=mid; else l=mid+1; } return n-l+1; } signed main(){ cin>>n>>m; for(int i=1;i<=n;i++)cin>>a[i]; sort(a+1,a+n+1); for(int c=0;c<=m;c++)val[c]=cnt(c); for(int i=1;i<=m;i++)dp[i]=INF; dp[0]=0; for(int i=1;i<=n;i++){ for(int j=0;j<=m;j++)tmp[j]=INF; for(int j=m;j>=0;j--){ for(int c=0;c<=j;c++){ tmp[j]=min(tmp[j],dp[j-c]+val[c]); } } for(int j=0;j<=m;j++)dp[j]=tmp[j]; } cout<<fixed<<setprecision(12)<<1.0*dp[m]/n<<endl; }


测评信息: