zoukankan      html  css  js  c++  java
  • tyvj Easy

    Easy

    [描述 Description]

    某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:(
    我们来简化一下这个游戏的规则
        有n次点击要做,成功了就是o,失败了就是x,分数是按comb计算的,连续acomb就有a*a分,comb就是极大的连续o
        比如ooxxxxooooxxx,分数就是2*2+4*4=4+16=20Sevenkplus闲的慌就看他打了一盘,有些地方跟运气无关要么是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

    ????

    【样例输出】

    4.1250

    【数据范围】

    Time Limitation时限1s每个测试点
    k表示?号的个数
    100%的数据 : n<=300000
    70%的数据 : k<=20
    40%的数据 : n<=200k<=20

     

    又是期望o(︶︿︶)o 唉

    晕了好久

    果然还是太弱了

    奇迹的是最后竟然过了~

    后来g_word神犇提出了一种新的理解方式,真是豁然开朗啊(Orz)

    我的做法是这样子的:

    动规:f[i] 代表 i 的期望。T[i] 代表 最后连续的o的期望长度(g_word神犇提出的,给跪了)。

    这样理解就可以看成是没有?的情况做了。

    于是转移就很显然了。

    对于?的话期望长度就要除以2了。否则要么+1要么=0

    f的话只有碰到?或x才需要更新。

    标程用了一种非常高端莫测的做法,看不懂……

    UPD:忘了贴代码了

    #include <cstdio>
    int n;
    long double f[300000 + 9],T[300000 + 9];
    int main()
    {
    	#ifndef ONLINE_JUDGE
    	freopen("easy.in","r",stdin);
    	freopen("easy.out","w",stdout);
    	#endif
    	scanf("%d
    ",&n);
    	for (int i = 1; i <= n; ++i) {
    		char c = getchar();
    		if (c == 'x') {
    			f[i] = f[i - 1];
    			T[i] = 0;
    		}else if (c == 'o') {
    			f[i] = f[i - 1] + 2*T[i - 1] + 1;
    			T[i] = T[i - 1] + 1;
    		}else {
    			f[i] = f[i - 1] + T[i - 1] + 0.5;
    			T[i] = (T[i - 1] + 1)/2;
    		}
    	}
    	printf("%.4f
    ",(double)f[n]);
    }
    

      

  • 相关阅读:
    基本MVVM 和 ICommand用法举例(转)
    WPF C# 命令的运行机制
    628. Maximum Product of Three Numbers
    605. Can Place Flowers
    581. Shortest Unsorted Continuous Subarray
    152. Maximum Product Subarray
    216. Combination Sum III
    448. Find All Numbers Disappeared in an Array
    268. Missing Number
    414. Third Maximum Number
  • 原文地址:https://www.cnblogs.com/lazycal/p/3388285.html
Copyright © 2011-2022 走看看