站外题求助
  • 板块学术版
  • 楼主CreamStarlight
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/23 18:15
  • 上次更新2024/7/23 19:39:40
查看原帖
站外题求助
855636
CreamStarlight楼主2024/7/23 18:15

题目是这样的:

Osu

题目背景

小 w 沉迷音乐游戏 osu!,但是他很菜,他想知道他打一首歌期望得分是多少。

题目描述

osu! 游戏中一首歌是由 nn 个音符(编号 1∼n1 \sim n)构成,小 w 对于每个音符都有一个命中率,即对于第 ii 个音符,小 w 有 pip_i 的概率命中该音符,有 (1−pi)(1 - p_i) 的概率 miss。

osu! 的得分是由 Combo(连续命中音符序列长度)的平方和构成。例如小 w 命中连续 44 个音符,miss 两个音符之后连续命中 33 个音符,则其得分为 42+32=254^2 + 3^2 = 25。

小 w 可能会通过练习修改某些音符的命中率。 他也会对某一段歌进行练习。 你需要在他每次练习之前告诉他这次练习的期望得分。

输入格式

输入第一行两个整数

输入第二行 nn 个浮点数 p1,p2,...,pnp_1, p_2, ..., p_n 表示每个音符小 w 的命中概率。

之后 mm 行表示操作。每行第一个整数为 11 或者 22。

如果第一个整数是 11,后面有一个整数 xx 和一个浮点数 qq,表示小 w 通过练习将 pxp_x 修改为 qq。不保证练习一定可以提升命中率。

如果第一个整数是 22,后面有两个整数 l,r(l≤r)l, r (l \le r) 表示小 w 将对 [l,r][l, r] 范围内的歌曲进行一次练习,请告诉他这次联系的期望得分。

输出格式

对于每个 22 操作,输出一个浮点数,表示期望得分。你和标准答案之间的相对误差不超过 10−510^{-5} 即视为正确。

样例1输入

4 6
0.5 0.5 0.5 0.5
2 1 2
2 1 3
2 1 4
1 2 1
1 3 1
2 1 4

样例1输出

1.5000000000
2.7500000000
4.1250000000
9.5000000000

大样例

osu.in / osu.out

数据范围和提示

对于 10%10\% 的数据,n<20,m<100n < 20, m < 100 对于 30%30\% 的数据,1≤n,m≤50001 \le n, m \le 5000 对于另外 20%20\% 的数据,不存在 11 操作类型 对于另外 20%20\% 的数据,询问练习时满足 l=1,r=nl = 1, r = n 对于 100%100\% 的数据,满足 n≤3×105,m≤3×105,1≤l≤r≤n,1≤x≤nn \le 3 \times 10^5, m \le 3 \times 10^5, 1 \le l \le r \le n, 1 \le x \le n,数据所有出现的浮点数都可以等价转化为分母为 256256 的分数。


我尝试使用了数学办法,但是考虑的因素不够多,没法过qwq

望各位大佬解析一下()

2024/7/23 18:15
加载中...