目錄
原題截圖:
原題翻譯
題目大意:
主要思路:
代碼:
原題截圖:
?
原題翻譯
題目大意:
給你一個數組,給你一個公式,讓你選k個元素,用公式算出最終得分。
主要思路:
這個題目是一個dp題,可以用dp來做,枚舉k,算出
接下來用dp求出最大的:
用代表前i個數下選了j個數(這就是Q數組),最大的
是多少。
轉移:如果第i個數沒選,。如果選了:
剩下的就好說了。
代碼:
#include<bits/stdc++.h>
using namespace std;
const double c=0.9;
double a[5010],dp[5010];
int n;
int main()
{double ans=-0x3f3f3f3f;cin>>n;for(int i=0;i<n;i++){cin>>a[i];}for(int i=0;i<n;i++){dp[i+1] = dp[i]*c+a[i];for(int j=i-1;j>=0;j--){dp[j+1] = max(dp[j+1],dp[j]*c+a[i]);}}double w=0.00;for(int i=1;i<=n;i++){w = c*w+1.0;ans = max(ans,dp[i]/w-1200.0/sqrt(double(i)));}printf("%.15f",ans);return 0;
}