一句话:有一些看似有关系的期望在把事件全面发生之后就变得相互独立了
#include<cstdio> using namespace std; int n,A,B,C,a[10000001]; double ans; int main() { scanf("%d%d%d%d%d",&n,&A,&B,&C,a+1); for(int i=2;i<=n;i++)a[i]=((long long)a[i-1]*A+B)%100000001; for(int i=1;i<=n;i++)a[i]=a[i]%C+1; if(!(a[1]==0||a[n]==0)) { if(a[1]>=a[n])ans+=1.0/a[1]; else ans+=1.0/a[n]; } for(int i=2;i<=n;i++) { if(a[i]==0||a[i-1]==0)continue; if(a[i]>=a[i-1])ans+=1.0/a[i]; else ans+=1.0/a[i-1]; } printf("%.3lf",ans); return 0; }