booloperator< (constGame &y)const{ if(fabs(y.p - p) < eps)returna * p > y.a * y.p; returnp < y.p; } } g[N]; doubleinlineK(inta,intb){ return(y(b) -y(a)) / (x(b) -x(a)); } structMatrix{ intn, m;
先考虑贪心,发现当升级后一定是一直选取 \(bp\) 最大,即期望收益最大的游戏,而升级前的选取要考虑升级的概率和当前选取的收益,所以考虑 \(DP\) 来解决升级前的选取。 设 \(f_t\) 为还剩 \(t\) 秒且当前未成功升级的最大期望收益,\(v\) 为 \(bp\) 最大值,得: \[
\left(\begin{matrix}f_{t-1} &t-1&1\\\end{matrix}\right)\left(\begin{matrix}1-p_{b_{i}} &0&0\\p_{b_{i}}Max&1&0\\p_{b_{i}}a_{b_{i}}&1&1\\\end{matrix}\right)=\left(\begin{matrix}f_{t} &t&1\\\end{matrix}\right) $$ 矩阵快速幂即可,复杂度为$o(n\log ...
Computer 题目地址:POJ 2196 题目: 给定一棵树,输出每个点能够到达的最远的距离 解决: 找到树的直径,分别用两端做树根,记录每个点到树根的距离,然后输出。 代码:...数论- Vanya and Computer Game Vanya and his friend Vova play a computer game where they need to destroy n monsters to pass a ...
CF1067D - Computer Game 题目大意 给定$n$个操作,每个操作有1级和2级分别对应价值$a_i,b_i (a_i<b_i)$,初始每个操作为$1$级 每次操作$i$,有$p_i$概率操作成功,这会获得价值,并且获得一次升级的机会 求$t$次操作的期望最大权值和 分析 容易
[cf1067D]Computer Game 令Max=maxni=1pibiMax=maxi=1npibi,显然这是每一个时刻的最大期望收益,因此当第一次胜利后,一定升级MaxMax对应的这个游戏并一直玩,使得之后每一个时刻都取到这个最大期望收益定义ftft表示可以玩tt次的最大期望收益(初始状态下,即没有升级过任何游戏),转移考虑枚举第tt个时刻玩的游戏,...
首先容易有一个贪心策略:先以某种最优策略一直进行,直到成功一次后一直选择bipi最大的进行。我们可以列出一个 DP,设fT表示在T时刻内期望最大收益,容易写出: fT=max{pi((T−1)v+ai)+(1−pi)fT−1} 看起来就是可以斜率优化的,整理可得:
题意 你有 $n$ 个任务,初始收益为 $a$ ,共 $t$ 轮游戏,每轮可以选择完成一个任务(可以做多次),完成之后可以给任意任务升级,升级之后的任务收益为 $b$ ,每个任务还有完成的概率 $p$ ,问期望最大收益是多少。 $n\leq 10^5,1\leq a设 $x_{t+1} \geq x
我们再将转移式变形:−((t−1)m−ft−1)pi+ft−ft−1=piai−((t−1)m−ft−1)pi+ft−ft−1=piai,该式子显然可以使用斜率优化,将 (t−1)m−ft−1(t−1)m−ft−1 看做斜率 kk,那么所求即为斜率为 kk 且经过点 (−pi,piai)(−pi,piai) 的直线在 yy ...