U467406 废墟图书馆
题目背景
你说得对,但是废墟图书馆是一款由 project moon 自主研发的一款卡牌战略游戏,在这里,你将在不断击败敌人的过程中,探寻“二五仔”的秘密......
zjw806903 正在玩 library of ruina(盗版)。
可是他太菜了,打不过罗兰,于是请你来帮他。
现在,罗兰将在下一回合使用大招,把 zjw806903 的尸山红姐秒掉,请你帮助 zjw806903 制定胜率最高的方案。
题目描述
这里是**亿**些设定
### 1. 骰子
#### 1.1 骰子的说明
在这里,每颗骰子都会投出点数范围内的随机点数(概率相等)
如一颗 $8$ 至 $14$ 的骰子就有 $1/7$ 的概率投出 $8,9,10...14$ 中的一个,这被称为**骰子基础值**。
由于游戏中有 buff 与 debuff,所以最终**战斗所用点数**可能会变化,它被称为**威力**。
##### 1.1.1 拼点
在双方**都有骰子**时,触发拼点,点数大者拼点胜利,点数小者拼点失败,若点数相等则平局。
##### 1.1.2 单方面攻击
在只有一方**有骰子**时,触发单方面攻击,攻击方将对受击方造成 $70\%$ 的伤害(还是会考虑抗性)。
#### 1.2 骰子类型
骰子有招架,闪避,斩击,穿刺,打击,反击六种类型。
进攻性包含穿刺,斩击,打击,防御性包含招架,闪避。
##### 1.2.1 闪避
闪避骰子在攻击后会保留,除非对方当前书页已然没有骰子可拼点,此时将被摧毁,若中途任意一次拼点失败,该骰子会被摧毁。
拼点胜利时,回复自身骰子威力$\times 60\%$ 的血量。
拼点失败时,参照拼点对方的骰子效果。
##### 1.2.2 招架
招架骰子在攻击后会自动摧毁,无论攻击成功与否。
若与进攻性骰子拼点,拼点胜利时,对对方造成(自身骰子威力-对方骰子威力) $\times 60\%$ 的伤害。
拼点失败时,对方对自身造成对方骰子威力 $-$ 自身骰子威力的伤害。
若与闪避骰子拼点,拼点胜利时,对对方造成(自身骰子威力-对方骰子威力)$\times 60\%$ 的伤害。
拼点失败时,参照拼点对方的骰子效果。
##### 1.2.3 攻击型骰子
攻击型骰子在攻击后会自动摧毁,无论攻击成功与否。
拼点胜利时:造成自身骰子点数伤害(招架骰子除外,参考1.2.2。)
拼点失败时:参照拼点对方的骰子效果。
##### 1.2.4 反击型骰子
反击骰子在攻击后会保留,除非对方当前书页已然没有骰子可拼点,此时将被摧毁,若中途任意一次拼点失败,该骰子会被摧毁。
反击骰子可以是上述五种骰子类型中的任意一种,除了骰子会保留外,其他地方并无不同。
### 2.书页
#### 2.1 书页是什么
书页,你可以理解为以下几个部分组成:
- 费用,表示使用这张书页需要花费多少。
- 作用,可能在书页的最前端,也可能在每个骰子后面。
- 骰子,可能有若干个,每个骰子可以攻击一次。
需要注意的是,只要两张书页发生了交战,那就不算单方面攻击,哪怕骰子数量不一样。
#### 2.2 书页的效果
##### 2.2.1 书页起始
书页起始的效果由前缀,中缀与后缀构成。
前缀:战斗开始时,使用时
战斗开始时表示只要你用了这张书页,这个回合都有这个BUFF(或DEBUFF)。
使用时表示**使用这张书页时**用了这张书页,获得这个BUFF(或DEBUFF)。
中缀:我方获得,敌方获得,我方斩击骰子威力,我方穿刺骰子威力,我方打击骰子威力,我方招架骰子威力,我方闪避骰子威力,敌方斩击骰子威力,敌方穿刺骰子威力,敌方打击骰子威力,敌方招架骰子威力,敌方闪避骰子威力。
获得表示获得 BUFF 或 DEBUFF,威力表示威力增减。
后缀:强壮,易损,守护,虚弱,忍耐,破绽,$+x$,$-x$,增减无效。($x$ 为正整数)
后三项仅对应威力,前六项仅对应获得。
如一张书页的搭配是这样的:战斗开始时 自己斩击骰子威力 $+2$,表示本幕使用的所有书页中的斩击骰子威力 $+2$。
##### 补充:BUFF or DEBUFF($x$ 为层数)
强壮:本幕所有进攻性骰子威力加 $x$。
虚弱:本幕所有进攻性骰子威力减 $x$。
守护:本幕受到的伤害 $-x$。
易损:本幕受到的伤害 $+x$。
忍耐:本幕所有防御性骰子威力加 $x$。
破绽:本幕所有防御性骰子威力减 $x$。
威力增减无效:无视所有 BUFF(或DEBUFF)对威力的影响。
##### 2.2.2 书页骰子后方
书页可能有多个骰子,每个骰子后面都可以有一句话,以下列形式构成:
前缀 中缀 后缀
前缀:拼点胜利时,拼点失败时,拼点打平时,命中时。
需要注意的是,单方面攻击不算拼点。
中缀:(我方或敌方)获得,(我方或敌方)(进攻性骰子类型)威力,对敌方追加伤害,恢复血量,摧毁敌方书页所有骰子。
后缀:强壮,易损,守护,虚弱,忍耐,破绽,$+x$,$-x$,增减无效,$x$。($x$ 为正整数)
7,8,9 仅对应威力,前六项仅对应获得,最后一项仅对应对敌方追加伤害,恢复血量。
### 3. 速度骰子
#### 3.1 速度骰子是什么
速度骰子你可以理解为一个数值,数值表示了这颗骰子的速度。速度高的速度骰子可以拦截速度低的速度骰子,每个速度骰子可以使用一张书页。
#### 3.2 如何拼点
拼点顺序以骰子速度为定,两者中速度较大者定义为这次拼点的速度,速度越大,越早拼点,若速度相同,以 zjw806903 的骰子编号越靠前,越早拼点。
### 4. 抗性
双方对于三种伤害都有抗性,抗性是一个浮点数,表示受到 $1$ 点特定类型伤害时,会变成该类型伤害的抗性点伤害,如若一个人斩击抗性 $0.8$,则受到 $12$ 点斩击伤害时,只会扣除 $12 \times 0.8 =9.6$ 点伤害,需要注意的是,招架骰子的伤害无视抗性。
### 对于所有后缀
若是增加BUFF类型,需在后面跟一个数 $x$,表示给予的层数。
输入格式
第一行:$h_1,h_2,l$,表示罗兰的血量,zjw806903 的血量,罗兰有 $l$ 颗骰子。
接下来 $l$ 行,每行两个数 $s_i,m_i$,表示每颗骰子的速度是 $s_i$,攻击目标是 zjw806903 的第 $m_i$ 颗骰子。
接下来有 $l$ 张书页,每张书页的格式见下。
第一行:骰子数 $n$,前缀,中缀,后缀。
第 $2$ 至 $n+1$ 行:骰子类型,骰子最小值 $mint$,骰子最大值 $maxt$,前缀,中缀,后缀,$x$。
骰子类型,前缀,中缀,后缀用数字表示,是几就表示第几个效果(与介绍的顺序相同),$x$ 表示后缀层数,若是 $0$ 表示无效果,若是威力增减无效,则无视 $x$。
接下来给出一行,仅有两个个数 $z,t$,表示 zjw806903 的书页数和骰子数。
接下来有 $z$ 张书页,格式同上。
接下来一行有 $t$ 个数,第 $i$ 个数表示第 $i$ 颗骰子的速度。
接下来给出两个数 $k,p$,表示罗兰的状态数与 zjw806903 的状态数。
接下来 $k$ 行,每行两个数 $v,j$,表示罗兰拥有第 $v$ 种状态,层数有 $j$ 层。
接下来 $p$ 行,每行两个数 $v,j$,表示 zjw806903 拥有第 $v$ 种状态,层数有 $j$ 层。
最后一行 $6$ 个数,分别表示罗兰的斩击,穿刺,打击伤害抗性,zjw806903 的斩击,穿刺,打击伤害抗性。
输出格式
第一行:`Yes` 或 `No`,表示 zjw806903 是否**有可能**胜利。
第二行:一个浮点数 $ans$,表示你给出的最大胜率,与答案相差不超过 $10^{-5}$ 即可。
接下来 $z$ 行,对于每一行,你需要给出 zjw806903 从左往右每个骰子使用书页的编号(从上到下为 $1,2,3...t$),与罗兰的哪个骰子拼点(单方面攻击为 $0$)。
说明/提示
### 样例解释1
第二张书页与罗兰的第一张书页拼点,第一张书页单方面攻击,伤害最少 $12.9$,完全可以击杀罗兰。
| 测试点编号 | 特殊性质 | 分值 |
| -----------: | -----------: | -----------: |
| subtask1 | A | 15 |
| subtask2 | B | 10 |
| subtask3 | AB | 10 |
| subtask4 | C | 15 |
| subtask5 | D | 10 |
| subtask6 | 无 | 40 |
对于 $100\%$ 的数据:
$1 \le n,k,p,l,z,t \le 6$
保证罗兰与 zjw806903 自身状态互不重复。
$1 \le mint \le maxt \le 10^9$
$1 \le s_i,g_i,h_1,h_2 \le 10^9$
保证书页赋予的状态合法。
特殊性质A:保证 $mint=maxt$。
特殊性质B:保证所有书页不会赋予状态。
特殊性质C:保证两个人没有任何状态。
特殊性质D:保证两人只有一颗速度骰子。