zoukankan      html  css  js  c++  java
  • P1365 WJMZBMR打osu! / Easy-洛谷luogu

    传送门

    题目背景

    原 维护队列 参见P1903

    题目描述

    某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:(

    我们来简化一下这个游戏的规则

    nn次点击要做,成功了就是o,失败了就是x,分数是按combo计算的,连续aa个combo就有a imes aa×a分,combo就是极大的连续o

    比如ooxxxxooooxxx,分数就是2 imes 2 + 4 imes 4 = 4 +16=202×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(4+9)/2=6.5了

    输入输出格式

    输入格式:

    第一行一个整数nn,表示点击的个数

    接下来一个字符串,每个字符都是o,x,?中的一个

    输出格式:

    一行一个浮点数表示答案

    四舍五入到小数点后44位

    如果害怕精度跪建议用long double或者extended

    输入输出样例

    输入样例#1: 复制
    4
    ????
    输出样例#1: 复制
    4.1250

    说明

    osu很好玩的哦

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

    --------------------------------------------------------------

    很基础的期望的题

    只要熟练掌握了dp

    就没问题了

    然而

    唉.......

    ----------------------------------------------------------------

    -------------------------------------------------------------------------

    #include<cstdio>
    #include<iostream>
    using namespace std;
    double f[1000000],g[10000000];
    int main()
    {
        int n;
        char s[1000000],ch;
        scanf("%d",&n);
        cin>>s;
        for(int i=0;i<n;++i)
        {
            ch = s[i];
            if(ch == 'x')
            {
                f[i] = f[i - 1];
                g[i] = 0;
            }
            else
            if(ch == 'o') 
            {
                f[i] = f[i - 1] + 2 * g[i - 1] + 1;
                g[i] = g[i - 1] + 1;
            } 
            else
            {
                f[i] = f[i - 1] + g[i - 1] + 0.5;
                g[i] = g[i - 1]/2 + 0.5; 
            }        
        }
        printf("%.4lf
    ",f[n-1]);
        return 0;
    }

    本来

    我写的scanf

    于是毫无疑问的wa了

    我还一脸懵

    后来才发现

    循环出现了很大的问题

    然而

    在我发现循环有问题之前

    我曾一度坚定不移的怀疑是不是自己的滚动数组写错了

    唉,太傻了太傻了

    循环输入字符串中的单个字符不能用scanf!!!!!

    用cin

    在循环一个个字符!!!!!!!

  • 相关阅读:
    Spark2.0机器学习系列之12: 线性回归及L1、L2正则化区别与稀疏解
    Spark2.0机器学习系列之11: 聚类(幂迭代聚类, power iteration clustering, PIC)
    mysql 5.7.16多源复制
    Windows版 mysql 5.7.16安装
    一分钟经理人
    转 spring官方文档中文版
    MySQL执行计划 EXPLAIN参数
    sql 转 markdown
    Linux下安装MySQL5.6
    MyBatis完全使用指南
  • 原文地址:https://www.cnblogs.com/darlingroot/p/10365009.html
Copyright © 2011-2022 走看看