zoj 2091 Mean of Subsequence(奇怪的貪心)
阿新 • • 發佈:2018-12-24
PMH and Roy played a game the other day. Roy gives the start position first, then PMH gives the length. Roy wants the mean of the subsequence as large as possible, while PMH wants it as small as possible.
You are to calculate the best result Roy can get, assuming PMH is very clever.
Input
There are multiple testcases.
Each testcase begins with a line containing N only.
The following line contains N numbers, separated by spaces.
Output
For each testcase, you are to print the best mean of subsequece Roy can get, precise to 6 digit after decimal point.
Sample Input
10
2 10 4 6 5 10 10 2 3 2
Sample Output
5.777778
這題可以說是我很不理解的一題。。。
#include <iostream> #include <cstdio> using namespace std; double a[10005],b[10005]; int main() { //freopen("cin.txt","r",stdin); int n,i,j; double maxm; while(cin>>n){ for(i=1;i<=n;i++) scanf("%lf",&a[i]); maxm=b[n]=a[n]; for(i=n-1;i>=1;i--){ b[i]=(a[i]+b[i+1]*(n-i))/(n-i+1); maxm=max(maxm,b[i]); } printf("%.6lf\n",maxm); } return 0; }