zoukankan      html  css  js  c++  java
  • 题解 P1297 [国家集训队]单选错位

    题解 P1297 [国家集训队]单选错位

    对于第(i)个题,有三种情况:

    1. (a_i=a_{i+1}),则(i)(i+1)期望相同,为(frac{1}{a_i})
    2. (a_i>a_{i+1}),则答案有(frac{a_{i+1}}{a_i})的可能在(1sim a_i)中,可能性为(frac{1}{min(a_i,a_{i+1})}=frac{1}{a_{i+1}})。期望为(frac{a_{i+1}}{a_i} imesfrac{1}{a_{i+1}}=frac{1}{a_i})
    3. (a_i<a_{i+1}),则答案有(frac{a_i}{a_{i+1}})的可能在(1sim a_{i+1})中,可能性为(frac{1}{min(a_i,a_{i+1})}=frac{1}{a_i})。期望为(frac{a_{i}}{a_{i+1}} imesfrac{1}{a_i}=frac{1}{a_{i+1}})

    故有(ans=sum_{i=1}^n{frac{1}{max(a_i,a_{i+1})}})

    (Code)

    #include<bits/stdc++.h>
    using namespace std;
    
    const int N=1e7+7;
    int a[N],A,B,C,n;
    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;
    	a[n+1]=a[1];//特殊处理一下 
    	for(int i=1;i<=n;i++)
    		ans+=(double)1/max(a[i],a[i]+1);
    	printf("%.3lf",ans);
    	return 0;
    }
    
  • 相关阅读:
    hive高阶函数和采样-优化
    zookeeper搭建
    hive常用函数和建表
    hive常用函数-建表-jdbc
    hadoop远程调试和配置HA
    hadoop-MR-排序
    python spark
    jenkins安装
    beetlsql
    spark页面单跳转化率
  • 原文地址:https://www.cnblogs.com/Sure042/p/tijie-p1297.html
Copyright © 2011-2022 走看看