首页 > 其他分享 >OSU!

OSU!

时间:2024-05-27 16:46:05浏览次数:12  
标签:分数 int OSU 样例 题解 操作 0.5

题目描述
osu 是一款群众喜闻乐见的休闲软件。

我们可以把osu的规则简化与改编成以下的样子:

一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1个长度为n的01串。在这个串中连续的 X个1可以贡献X^3 的分数,这x个1不能被其他连续的1所包含(也就是极长的一串1,具体见样例解释)

现在给出n,以及每个操作的成功率,请你输出期望分数,输出四舍五入后保留1位小数。

输入格式
第一行有一个正整数n,表示操作个数。

接下去n行每行有一个[0,1]之间的实数,表示每个操作的成功率。

输出格式
只有一个实数,表示答案。答案四舍五入后保留1位小数。

样例
样例输入
3
0.5
0.5
0.5
样例输出
6.0
数据范围与提示
000分数为0,001分数为1,010分数为1,100分数为1,101分数为2,110分数为8,011分数为8,111分数为27,总和为48,期望为48/8=6.0

N<=100000

很显然啊,没推出来
(同Elaina进行了激烈的讨论,未果,遂看题解)

既然看了题解,那么就说说过程
比较容易想到的就是利用dp(思想)我们令f[i]为前i位的期望之和,很显然,对于第i位,会有1和0两种选择:
0的话就可以直接从前面(f[i-1])继承
1的话,就比较难办,因为我不知道从尾部开始连续1字串的长度,所以我就想去记录一下长度,但又一想,情况多了去了,怎么记录,况且概率各不相同,然后就卡住了(实际上我还想去预处理出\(x^{3}\)的,但被Elaina悬崖勒马了),最后看题解去了

开始正题

我们先不从3次方开始,先从一次的开始,对于第i位选1的期望值,那么会有
\(x^{1}[i]=(x^{1}[i-1]+1)*p[i]\)

那么对于二次的呢
根据公式:\((x+1)^{2}=x^{2}+2x+1\)
可知:
\(x^{2}[i]=(x^{2}[i-1]+2*x^{1}[i-1]+1)*p[i]\)

那么三次的也就有了
根据公式:\((x+1)^{3}=x^{3}+3x^{2}+3x^{1}+1\)
可知:
\(x^{3}[i]=(x^{3}[i-1]+3*x^{2}[i-1]+3*x^{1}[i-1]+1)*p[i]\)

到这里就有一个问题,为什么仅用算1的情况,那0呢?
实际上,根据上面的口胡,会发现,当选中1时,采用上面的公式,但对于0的话,它没有任何作用,也就是说,它可以直接从\(x^{3}[i-1]\)转移过来
因此,本题的真正转移方程实际是
\(x^{3}[i]=(x^{3}[i-1]+3*x^{2}[i-1]+3*x^{1}[i-1]+1)*p[i]+x^{3}[i-1]*(1-p[i])\)
实际上一开始看到这我还是有疑问,那对于1,0夹杂的情况呢,后面才发现自己想多了,在转移的时候都已经包含进去了

点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+100;
int n;
double f[N],p[N],x1[N],x2[N];
int cnt=0;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++) cin>>p[i];
	for(int i=1;i<=n;i++){
		x1[i]=(x1[i-1]+1)*p[i];
		x2[i]=(x2[i-1]+2*x1[i-1]+1)*p[i];
		f[i]=(f[i-1]+3*x2[i-1]+3*x1[i-1]+1)*p[i]+f[i-1]*(1-p[i]);
	}
	cout<<setprecision(1)<<fixed<<f[n]<<endl;
}

最后贴一张深有感触的图
image

标签:分数,int,OSU,样例,题解,操作,0.5
From: https://www.cnblogs.com/PeppaEvenPigShiGeNiuBDePig/p/18215905

相关文章

  • 【问题解决】java.lang.NoSuchMethodError错误
    问题现象近期本人负责的一个SpringBoot模块出现了java.lang.NoSuchMethodError报错,问题情况如下:A类提供了setJumpType(Stringtype),B类调用A类的setJumpType(Stringtype)报错java.lang.NoSuchMethodError:com.xxx.A.setJumpType(Ljava/lang/String;)V在之前的发版的程序中,B......
  • java.lang.NoSuchMethodError的不明崩溃问题
    1)java.lang.NoSuchMethodError的不明崩溃问题2)微信小游戏有可行的分析Mono内存的方法吗3)游戏运行中,从对象池里拿Item时动态设置物体锚点,导致DC成倍增加4)ScriptableBuildPipeline打包ScritptableObject报错这是第384篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA......
  • ES7.17.20连接时报错:java.lang.NoSuchMethodError: org.elasticsearch.client.Request
    1.报错详情:java.lang.NoSuchMethodError:org.elasticsearch.client.RequestOptions$Builder.removeHeader(Ljava/lang/String;)Lorg/elasticsearch/client/RequestOptions$Builder; atco.elastic.clients.transport.rest_client.RestClientOptions.addBuiltinHeaders(RestCli......
  • lua closure 引用值capture及栈结构
    问题对于习惯了C/C++的程序员来说,像lua/python这种动态语言总是有一些看起来新奇的特性。其中一个比较典型的例子就是闭包,尽管C++的lambda表达式隐约有了闭包的影子,但是相比较而言还是lua的闭包更强大:lua的闭包可以捕捉任意存储类型(函数参数,全局i变量,局部变量)变量,并且更重要的......
  • [Rust] Thread 3: move keyword to resolve borrowing problem for closure
    Weofteruse movewithclosurespassedto thread::spawnbecasetheclosurewillthentakeownershipofthevaluesitusesfromtheenvironment,thustransferringowershopofthosevaluesfromonethreadtoanother. Thefollowingcodewon'twork:use......
  • EvoSuite使用总结
    1.安装EvoSuite插件以IDEA为例,在Plugins栏搜索EvoSuite后点击install,安装完成后重启IDEA2.使用EvoSuite选中文件右键选择RunEvoSuite生成成功可以看到如下提示:注意事项:生成路径:src/test/java使用junit4版本然后在pom.xml文件添加如下依赖:<dependency>......
  • bug-missing GOSUMDB
     问题描述:D:\gopj>gomodtidygo:findingmoduleforpackagego.uber.org/zapgo:findingmoduleforpackagegithub.com/valyala/fasthttpgo:downloadinggo.uber.org/zapv1.26.0go:downloadinggithub.com/valyala/fasthttpv1.52.0go:githun.com/bigwh......
  • JDK21报错 java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTre
    JDK21报错java:java.lang.NoSuchFieldError:Classcom.sun.tools.javac.tree.JCTree$JCImportdoesnothavememberfield'com.sun.tools.javac.tree.JCTreequalid'Lombok版本兼容性的问题导致Maven依赖改为新版本<dependency><groupId>org.projectlombok&l......
  • Mybatis Plus java.lang.NoSuchMethodError: com.baomidou.mybatisplus.core.toolkit.
    问题描述在进行SpringBoot整合MybatisPlus时提示10:49:08.390[restartedMain]DEBUGorg.springframework.boot.context.logging.ClasspathLoggingApplicationListener-Applicationfailedtostartwithclasspath:[file:/D:/%e7%99%be%e5%ba%a6%e7%bd%91%e7%9b%98/Vue......
  • org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named '
    开发遇到一个问题:org.springframework.beans.factory.NoSuchBeanDefinitionException:Nobeannamed'ckhSynCardNumToMbhkJob'available这个报错可能是因为:1.spring的xml配置文件Bean中的id和getBean的id不一致2.是否是忘记加注解了,3.启动类包扫描路径是否正确经过测试发......