BZOJ2134: 单选错位
2014-11-11 16:12
295 查看
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2134
View Code
#include<cstdio> #include<cstdlib> #include<cmath> #include<cstring> #include<algorithm> #include<iostream> #include<vector> #include<map> #include<set> #include<queue> #include<string> #define inf 1000000000 #define maxn 10000000+5 #define maxm 500+100 #define eps 1e-10 #define ll long long #define pa pair<int,int> #define for0(i,n) for(int i=0;i<=(n);i++) #define for1(i,n) for(int i=1;i<=(n);i++) #define for2(i,x,y) for(int i=(x);i<=(y);i++) #define for3(i,x,y) for(int i=(x);i>=(y);i--) #define mod 100000001 using namespace std; inline ll read() { ll x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=10*x+ch-'0';ch=getchar();} return x*f; } ll n,a,b,c,d[maxn]; int main() { freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); n=read();a=read();b=read();c=read();d[1]=read(); for2(i,2,n)d[i]=(d[i-1]*a+b)%mod; for1(i,n)d[i]=(d[i]%c)+1;d[n+1]=d[1]; double ans=0; for1(i,n) if(d[i+1]>=d[i])ans+=1.0/(double)d[i+1]; else ans+=1.0/(double)d[i]; printf("%.3f\n",ans); return 0; }
View Code
相关文章推荐
- 【BZOJ】2134: 单选错位 期望DP
- 【BZOJ2134】单选错位 概率DP
- Bzoj2134:单选错位
- bzoj2134 单选错位 递推
- Bzoj2134:单选错位
- bzoj2134: 单选错位(trie)
- BZOJ_2134_单选错位——期望DP
- BZOJ 2134 单选错位 ——期望DP
- bzoj 2134 单选错位(期望)
- BZOJ——2134: 单选错位
- BZOJ 2134 单选错位 期望DP
- bzoj 2134: 单选错位 (概率与期望)
- BZOJ2134 单选错位
- bzoj2134 单选错位
- BZOJ.2134.[国家集训队]单选错位(概率 递推)
- 【bzoj2134】单选错位
- bzoj2134 单选错位
- bzoj 2134: 单选错位 期望dp
- 【bzoj2134】单选错位 期望
- 【BZOJ2134】单选错位 概率DP? 貌似不算DP