PKUSC2018 Slay The Spire】的更多相关文章

有攻击牌和强化牌各 $n$ 张,强化牌可以让之后所有攻击牌攻击力乘一个大于 $1$ 的系数,攻击牌可以造成伤害 求所有“抽出 $m$ 张然后打 $k$ 张”能造成的伤害之和 $k,m,2n \leq 3000$ sol: 冷静一下,发现强化牌肯定要打完,因为一张攻击力最大的攻击牌就相当于没强化的强化牌 讨论一下抽到了几张强化牌 假设抽到了 $i$ 张强化牌,$k-i$ 张攻击牌 如果 $i < k$ 直接强化全打然后攻击就完事了,如果 $i \geq k$ 的话打最大的 $k-1$ 张强化和最大…
BZOJ 5467 Slay the Spire 我的概率基础也太差了.jpg 大概就是这样,因为强化牌至少翻倍,所以打出的牌必定是全部的强化牌或者$k-1$个强化牌,然后剩余的机会打出最大的几个攻击牌. 我们对于强化牌和攻击牌分别做,并且显然,排序并不会影响答案. $f[i][j]$表示前$i$张牌,取到$j$张,第$i$张必定取的最大强化值之积,$g[i][j]$表示前$i$张攻击牌,取到$j$张,第$i$张必定取的最大伤害和.(一般来说,应该先考虑第$i$张不必需取的最大值,但是由于那样设…
Update on 1.5 学了 zhou888 的写法,真是又短又快. 并且空间是 \(O(n)\) 的,速度十分优秀. 题意 LOJ #2538. 「PKUWC 2018」Slay the Spire 题解 首先我们考虑拿到一副牌如何打是最优的,不难发现是将强化牌从大到小能打就打,最后再从大到小打攻击牌 . 为什么呢 ? 证明(简单说明) : 如果不是这样 , 那么我们就是有强化牌没有用 , 且攻击牌超过两张 . 我们考虑把最小的那张攻击牌拿出来 , 然后放入一张强化牌 . \(\becau…
$ \color{#0066ff}{ 题目描述 }$ 九条可怜在玩一个很好玩的策略游戏:Slay the Spire,一开始九条可怜的卡组里有 \(2n\) 张牌,每张牌上都写着一个数字\(w_i\),一共有两种类型的牌,每种类型各 \(n\) 张: 攻击牌:打出后对对方造成等于牌上的数字的伤害. 强化牌:打出后,假设该强化牌上的数字为\(x\),则其他剩下的攻击牌的数字都会乘上 \(x\).保证强化牌上的数字都大于 1. 现在九条可怜会等概率随机从卡组中抽出 \(m\) 张牌,由于费用限制,九…
LOJ BZOJ 洛谷 哪张能力牌能乘攻击啊,太nb了叭 显然如果有能力牌,那么应该选最大的尽可能的打出\(k-1\)张. 然后下面说的期望都是乘总方案数后的,即所有情况的和.然后\(w_i\)统一用\(A_i\)表示了. \(Solution1\) 所以考虑枚举最终抽到了几张能力牌.那么我们要算:\(F(n,m)\)表示抽到\(n\)张攻击牌,打出最大的\(m\)张的期望伤害:\(G(n,m)\)表示抽到\(n\)张能力牌,打出最大的\(m\)张的期望倍数. 考虑怎么算\(F(n,m)\).不…
Description 现在有 \(n\) 张强化牌和 \(n\) 张攻击牌: 攻击牌:打出后对对方造成等于牌上的数字的伤害. 强化牌:打出后,假设该强化牌上的数字为 \(x\),则其他剩下的攻击牌的数字都会乘上 \(x\).保证强化牌上的数字都大于 1. 现在等概率地从这 \(2n\) 张卡中抽出 \(m\) 张,并且按最优策略打出 \(k\) 张,问期望能造成多少伤害. Solution 第一这是披着期望皮的计数题 第二最优策略肯定是能打强化牌就打强化牌,最后剩下一张攻击牌再打 既然是计数题…
Problem loj2538 Solution 在考场上当然要学会写暴力,考虑如果手上已经有了\(a\)张攻击牌和\(b\)张强化牌: 首先强化牌会在攻击牌之前用(废话),其次要将两种牌分别从大往小打,即排个序先(也是废话) 要尽量打强化牌,最后再打一张攻击牌(由于每张强化牌至少乘二,所以打一张强化牌一定不比多打一张攻击牌差) 由于\(n\leq 3000\),预估复杂度为\(O(n^2)\),所以应该可以枚举两种牌的数量 设两个状态,\(F[i][j]\)表示选取\(i\)张强化牌,打出\(…
传送门 不想放题面了,咕咕咕咕咕 这个期望明明是用来吓人的,其实要算的就是所有方案的最多伤害的和. 首先可以知道的是,能出强化牌就出强化牌(当然最后要留一张攻击牌出出去),且数字尽量大 所以说在强化牌数量$< K$时会打出所有强化牌和剩下的最大的攻击牌,而强化牌数量$\geq K$的时候则会打出$K-1$张强化牌和$1$张攻击牌,且它们的数字都是最大的 我们不妨计算每一种最优打出的方案存在在多少种抽取方案中. 设$f_{i,j}$表示使用$i$张强化牌,其中数值最小的牌是第$j$张时的方案的强化…
LINK 思路 首先因为式子后面把方案数乘上了 所以其实只用输出所有方案的攻击力总和 然后很显然可以用强化牌就尽量用 因为每次强化至少把下面的牌翻一倍,肯定是更优的 然后就只有两种情况 强化牌数量少于k 强化牌数量大于等于k 根据乘法原理,设\(f_{i,j}\)是选i张强化牌用j张的倍数总和,\(g_{i,j}\)是选i张攻击用j张的倍数总和 \(ans+=f_{k,k}*g_{m-i,m-k}\) \(ans+=f_{i,k-1}*g_{m-i,1}\) 然后f的计算可以量化大小这个东西,就…
题面链接 LOJ sol 好神啊.果然\(dp\)还是做少了,纪录一下现在的思维吧\(QAQ\). 我们首先可以发现期望是骗人的,要不然他乘的是什么xjb玩意. 其实就是要求所有方案的最优方案和. 因为\(w_i\)是大于1的,所以能强化先强化,再从大往小打攻击牌. 那么我们枚举用了\(a\)张强化,\(b\)张攻击. 若\(a<k\),显然强化牌选完,攻击牌从大到小. 否则,选前\(k-1\)大的强化牌,再选最大的攻击牌. 我们如何做到最优呢,这里有一个套路,先排序,这样可以保证每一种方案这一…