zoukankan      html  css  js  c++  java
  • codevs 1872 Let's Play OSU!

     时间限制: 1 s
     空间限制: 128000 KB
     题目等级 : 黄金 Gold
     
     
     
    题目描述 Description

    某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:(
    我们来简化一下这个游戏的规则
    有n次点击要做,成功了就是o,失败了就是x,分数是按comb计算的,连续a个comb就有a*a分,comb就是极大的连续o。
    比如ooxxxxooooxxx,分数就是2*2+4*4=4+16=20。
    Sevenkplus闲的慌就看他打了一盘,有些地方跟运气无关要么是o要么是x,有些地方o或者x各有50%的可能性,用?号来表示。
    比如oo?xx就是一个可能的输入。
    那么WJMZBMR这场osu的期望得分是多少呢?
    比如oo?xx的话,?是o的话就是oooxx => 9,是x的话就是ooxxx => 4
    期望自然就是(4+9)/2 =6.5了

    输入描述 Input Description

    第一行一个整数n,表示点击的个数
    接下来一个字符串,每个字符都是ox?中的一个

    输出描述 Output Description

    一行一个浮点数表示答案
    四舍五入到小数点后4位
    如果害怕精度跪建议用long double或者extended

    (由于没有SpecialJudge功能,请强制输出4位小数)

    样例输入 Sample Input

    4
    ????

    样例输出 Sample Output

    4.1250

    数据范围及提示 Data Size & Hint

    【数据范围】

    k表示?号的个数

    40%的数据 : n<=200且k<=20

    70%的数据 : k<=20

    100%的数据 : n<=300000

    【卖萌向】

    osu很好玩的哦

    WJMZBMR技术还行(雾),x基本上很少呢

    【来源】

    我们都爱GYZ摸你赛 Problem A Easy

     1 #include<cstdio>
     2 using namespace std;
     3 char c[300001];
     4 int i,n;
     5 double x,len;  
     6 int main()
     7 {
     8     scanf("%d
    %s",&n,c+1);
     9     for (i=1;i<=n;++i)
    10     {  
    11         if (c[i]=='o') x+=2*len+1,len++; 
    12         else if (c[i]=='x') len=0; 
    13         else if (c[i]=='?') x+=len+0.5,len=len/2+0.5;  
    14     }  
    15     printf("%.4f
    ",x);  
    16 }
    View Code
  • 相关阅读:
    Hadoop功能模块之hdfs
    Hadoop介绍
    大数据的介绍
    Hadoop之shell命令
    Flume
    C# DataTable使用方法详解
    npoi 操作excell 可以下载的链接
    node.js mqtt样例
    node.js压缩
    arcgis中打印所有变量的名称和值
  • 原文地址:https://www.cnblogs.com/chen74123/p/6680856.html
Copyright © 2011-2022 走看看