解题思路:杨辉三角,最后转换注意一下,记得用double

代码如下:

#include <algorithm>
#include <string.h>
#include <iostream>
#include <stdio.h>
#include <string>
#include <vector>
#include <queue>
#include <map>
#include <set>
using namespace std;

double dp[31][31],Max,Min;

int main()
{
	int i,j;
	memset(dp,0,sizeof(0));
	for(i=1;i<=29;i++)
		for(j=1;j<=i;j++)
			cin>>dp[i][j];
	for(i=2;i<=30;i++)
		for(j=1;j<=i;j++)
			dp[i][j]+=(dp[i-1][j-1]+dp[i-1][j])/2.0;
	Max=Min=dp[30][1];
	for(i=2;i<=30;i++)
		if(dp[30][i]>Max)
			Max=dp[30][i];
		else if(dp[30][i]<Min)
			Min=dp[30][i];
	printf("%lf\n",2086458231.0/Min*Max);
	
	return 0;
}