日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Easy与Osu

發(fā)布時間:2025/7/14 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Easy与Osu 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Easy

題目描述

某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠運(yùn)氣:(
我們來簡化一下這個游戲的規(guī)則
有n次點擊要做,成功了就是o,失敗了就是x,分?jǐn)?shù)是按comb計算的,連續(xù)a個comb就有a*a分,comb就是極大的連續(xù)o。
比如ooxxxxooooxxx,分?jǐn)?shù)就是2*2+4*4=4+16=20。
Sevenkplus閑的慌就看他打了一盤,有些地方跟運(yùn)氣無關(guān)要么是o要么是x,有些地方o或者x各有50%的可能性,用?號來表示。
比如oo?xx就是一個可能的輸入。
那么WJMZBMR這場osu的期望得分是多少呢?
比如oo?xx的話,?是o的話就是oooxx => 9,是x的話就是ooxxx => 4
期望自然就是(4+9)/2 =6.5了

輸入

第一行一個整數(shù)n,表示點擊的個數(shù)
接下來一個字符串,每個字符都是ox?中的一個

輸出

一行一個浮點數(shù)表示答案
四舍五入到小數(shù)點后4位
如果害怕精度跪建議用long double或者extended

樣例輸入

4 ????

樣例輸出

4.1250n<=300000 osu很好玩的哦 WJMZBMR技術(shù)還行(霧),x基本上很少呢


Osu

題目描述

osu 是一款群眾喜聞樂見的休閑軟件。? 我們可以把osu的規(guī)則簡化與改編成以下的樣子:? 一共有n次操作,每次操作只有成功與失敗之分,成功對應(yīng)1,失敗對應(yīng)0,n次操作對應(yīng)為1個長度為n的01串。在這個串中連續(xù)的 X個1可以貢獻(xiàn)X^3 的分?jǐn)?shù),這x個1不能被其他連續(xù)的1所包含(也就是極長的一串1,具體見樣例解釋)? 現(xiàn)在給出n,以及每個操作的成功率,請你輸出期望分?jǐn)?shù),輸出四舍五入后保留1位小數(shù)。?

輸入

第一行有一個正整數(shù)n,表示操作個數(shù)。接下去n行每行有一個[0,1]之間的實數(shù),表示每個操作的成功率。?

輸出

只有一個實數(shù),表示答案。答案四舍五入后保留1位小數(shù)。?

樣例輸入

3 0.5 0.5 0.5

樣例輸出

6.0
【題解】
一個游戲產(chǎn)生的兩道題,只不過一個是二次方一個是三次方,套路非常相近。f[i]表示以i為結(jié)尾的極大連續(xù)1長度的期望(其實在此處還不用考慮結(jié)尾不結(jié)尾的事),g[i]表示平方的期望,h[i]表示立方的期望。g[i]本應(yīng)=(f[i-1]+1)^2=f[i-1]*f[i-1]+2*f[i-1]+1,但是這里平方是在期望意義下的,所以用g[i-1]代替f[i-1]*f[i-1],最后乘上這一位是1的概率,立方同理。計算結(jié)果時要考慮下一位的情況了,再乘上(1-p[i+1])。這道題在期望、概率、數(shù)字之間的轉(zhuǎn)化比較靈活,也展現(xiàn)了高次遞推的一些套路。安心地使用double并沒有炸精度。
#include<iostream> #include<cstdio> #include<cstring> using namespace std; const int sj=300010; int n; double f[sj],g[sj],jg; char a[sj]; int main() {//freopen("t.txt","r",stdin);scanf("%d%s",&n,a);for(int i=1;i<=n;i++){if(a[i-1]=='o') {f[i]=f[i-1]+1;g[i]=g[i-1]+2*f[i-1]+1;}if(a[i-1]=='x'){ f[i]=0;g[i]=0;}if(a[i-1]=='?'){ f[i]=(f[i-1]+1)/2;g[i]=(g[i-1]+2*f[i-1]+1)/2;}if(a[i]!='?'&&a[i]!='o') jg+=g[i];if(a[i]=='?') jg+=g[i]/2;}printf("%.4lf",jg);//while(1);return 0; } #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int sj=100010; double f[sj],g[sj],h[sj],jg,p[sj]; int n; int main() {//freopen("t.txt","r",stdin);scanf("%d",&n);for(int i=1;i<=n;i++) {scanf("%lf",&p[i]);f[i]=(f[i-1]+1)*p[i];}for(int i=1;i<=n;i++) g[i]=(g[i-1]+2*f[i-1]+1)*p[i];for(int i=1;i<=n;i++){ h[i]=(h[i-1]+3*g[i-1]+3*f[i-1]+1)*p[i];jg+=h[i]*(1-p[i+1]);}printf("%.1lf",jg);//while(1);return 0; }

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/moyiii-/p/7241936.html

總結(jié)

以上是生活随笔為你收集整理的Easy与Osu的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。