• [Tyvj 1952] Easy


    P1952 Easy
    时间: 1000ms / 空间: 131072KiB / Java类名: Main

    描述

    某一天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了

    输入格式

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

    输出格式

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

    测试样例

    输入


    ????

    输出

    4.1250

    备注

    osu很好玩的哦
    WJMZBMR技术还行(雾),x基本上很少呢

    确实是道水题w

    保存期望得分和期望combo后对于每个字符分三种情况递推即可w

    对于$'o'$直接期望combo$+=1$,期望分数加上平方差

    对于$'x'$直接期望combo$=0$,期望分数等于上一次的分数

    对于$'?'$期望combo更新为上次的combo$+1$后再$ imes 0.5$,期望分数加上平方差的一半

    但是非常坑爹的是题面没有指定数据范围(╯‵□′)╯︵┻━┻

    RE了3次后用500k的数据范围A掉了这题QAQ

    袋马如下

    GitHub

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <cstdlib>
     4 #include <iostream>
     5 #include <algorithm>
     6 
     7 const int MAXN=500010;
     8 
     9 int n;
    10 char buf[MAXN];
    11 double pt[MAXN];
    12 double cb[MAXN];
    13 
    14 int main(){
    15     scanf("%d",&n);
    16     scanf("%s",buf+1);
    17     for(int i=1;i<=n;i++){
    18         if(buf[i]=='o'){
    19             pt[i]=pt[i-1]+cb[i-1]*2+1.0;
    20             cb[i]=cb[i-1]+1.0;
    21         }
    22         else if(buf[i]=='x'){
    23             pt[i]=pt[i-1];
    24             cb[i]=0;
    25         }
    26         else{
    27             pt[i]=pt[i-1]+cb[i-1]+0.5;
    28             cb[i]=(cb[i-1]+1)/2.0;
    29         }
    30     }
    31     (n+1)^2=n^2+2n+1
    32     (n+1)^3=n^3+3x^2+3x+1
    33     printf("%.4lf
    ",pt[n]);
    34     return 0;
    35 }
    Backup

    吼啦图包时间

  • 相关阅读:
    tp5 window环境迁移到一键lnmp流程问题笔记
    构建:什么是构建
    requests--etree--xpath
    python-requests
    python正则表达式03--字符串中匹配数字
    python正则表达式02--findall()和search()方法区别,group()方法
    python正则表达式01--贪心算法和非贪心算法findall()
    UIViewController的生命周期(根视图view从无到有的过程)
    CoreData基础
    XMPP即时通信(基础)
  • 原文地址:https://www.cnblogs.com/rvalue/p/7235597.html
Copyright © 2020-2023  润新知