zoukankan      html  css  js  c++  java
  • 单选错位[bzoj2134]

     题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2134

     题解:

      每一步正确的概率的倒数之和就是期望。

      第i道题正确的概率为1/max(a[i],a[i-1])。因为假设第i题的选项比第i-1题多,那么正确概率为1/a[i-1] * a[i-1]/a[i] ,即第i题的正解在第i-1题的选项中且选对;若第i题选项比第i-1题少,那么概率为1/a[i-1],因为正解一定在a[i-1]中,显然随机选时选到正解的概率为1/a[i-1]。(因为题目之间无关,所以可以看做随机的)。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #define LL long long
     5 #define RI register int
     6 using namespace std;
     7 const int INF = 0x7ffffff ;
     8 const int N = 1e7 + 10 ;
     9 
    10 inline int read() {
    11     int k = 0 , f = 1 ; char c = getchar() ;
    12     for( ; !isdigit(c) ; c = getchar())
    13       if(c == '-') f = -1 ;
    14     for( ; isdigit(c) ; c = getchar())
    15       k = k*10 + c-'0' ;
    16     return k*f ;
    17 }
    18 int a[N] ;
    19 
    20 int main() {
    21     int n, A, B, C ; 
    22     scanf("%d%d%d%d%d",&n,&A,&B,&C,a+1); 
    23     for (int i=2;i<=n;i++) a[i] = ((long long)a[i-1] * A + B) % 100000001; 
    24     for (int i=1;i<=n;i++) a[i] = a[i] % C + 1 ;
    25     double ans = 0 ;
    26     a[0] = a[n] ;
    27     for(int i=0;i<n;i++) ans += 1.0/(double)max(a[i],a[i+1]) ;
    28     printf("%.3lf",ans) ;
    29     return 0 ;
    30 }
  • 相关阅读:
    大道至简观后感
    冲刺第二天
    梦断代码阅读笔记 02
    冲刺第一天
    第十周学习进度
    个人冲刺第一阶段个人任务--界面
    软工第二周个人作业
    软件工程开课博客(自我介绍)
    梦断代码阅读笔记01
    第二周学习进度报告
  • 原文地址:https://www.cnblogs.com/zub23333/p/8622470.html
Copyright © 2011-2022 走看看