好像放过了一种水法
  • 板块P1654 OSU!
  • 楼主zhy_learn
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/11/16 21:40
  • 上次更新2023/11/17 09:07:21
查看原帖
好像放过了一种水法
327567
zhy_learn楼主2023/11/16 21:40

根据精度较小, O(n2)O(n^2) 随便加的剪枝就过了

#include<bits/stdc++.h>
#define Fu(i,a,b) for(int i=a;i<=b;i++)
#define Fd(i,a,b) for(int i=a;i>=b;i--)
#define fre(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout)
using namespace std;
int n;
double p[100005],pp[100005],ans;
int main(){
	scanf("%d",&n);
	pp[0]=1;
	Fu(i,1,n) scanf("%lf",&p[i]);
	Fu(i,1,n){
		double x=1;
		Fu(j,i,n){
			x*=p[j];
			if(x<1e-10) break;
			ans+=x*(1-p[i-1])*(1-p[j+1])*(j-i+1)*(j-i+1)*(j-i+1);
		}
	}
	printf("%.1lf",ans);
	return 0;
}

2023/11/16 21:40
加载中...