#P14566. [Bulgarian 2024]fair

[Bulgarian 2024]fair

题目描述

现在有一列共 KKNN 面骰子。

其中有些是公平骰子,有些是不公平骰子。更准确地说,每个骰子有概率 PP 是公平的,有概率 1P1-P 是不公平的。

  • 公平骰子:掷出每一面的概率都相同,即均为 1N\dfrac{1}{N}
  • 不公平骰子:其各面的概率按如下方式随机生成:
    1. 对于每个 i=1,2,,Ni=1,2,\dots,N,生成一个服从 [0,1][0,1] 上均匀分布的随机数 QiQ_i
    2. 该骰子掷出第 ii 面的概率为QiQ1+Q2++QN\frac{Q_i}{Q_1+Q_2+\cdots+Q_N}

现在,这 KK 个骰子中的每一个都已经被掷了 MM 次,并记录下了每一面的出现次数。

你的任务是根据这些结果,判断每个骰子是公平还是不公平

  • 如果你把一个公平骰子判断成不公平骰子,会产生罚分 XX
  • 如果你把一个不公平骰子判断成公平骰子,会产生罚分 YY

你应尽量使总罚分最小。

输入格式

第一行包含五个数 N,M,P,X,YN,M,P,X,Y

第二行包含一个整数 KK,表示骰子的数量。

接下来 KK 行,每行包含 NN 个整数 Counti,1,Counti,2,,Counti,NCount_{i,1},Count_{i,2},\dots,Count_{i,N},其中 Counti,jCount_{i,j} 表示第 ii 个骰子掷出第 jj 面的次数。

输出格式

输出共 KK 行。

ii 行输出一个整数 IsFairiIsFair_i

  • 输出 1 表示你认为第 ii 个骰子是公平骰子
  • 输出 0 表示你认为第 ii 个骰子是不公平骰子

样例 #1

样例输入 #1

3 15 0.6 0.35 0.65
3
6 4 5
9 5 1
5 5 5

样例输出 #1

1
0
1

数据范围

  • 2N82 \le N \le 8
  • 15M4015 \le M \le 40
  • 0.5P0.80.5 \le P \le 0.8
  • 0.3X,Y0.70.3 \le X,Y \le 0.7
  • X+Y=1X+Y=1
  • K=100000K=100000

评分方式

本题为提交答案题,所有测试点独立计分。

设你在某个测试点上的总罚分为 TPTP,定义平均罚分:

AP=TPKAP=\frac{TP}{K}

再定义基准平均罚分:

BAP=min(PX, (1P)Y)BAP=\min(P\cdot X,\ (1-P)\cdot Y)

然后定义得分系数:

S=max(BAPAPBAP, 0)S=\max\left(\frac{BAP-AP}{BAP},\ 0\right)

再令:

R=SSAuthorR=\frac{S}{S_{Author}}

其中 SAuthorS_{Author} 为出题人程序在该测试点上的 SS 值。

该测试点的最终得分为:

  • R>0.999R>0.999,则得分为

    1.01.0
  • R>0.8R>0.8,则得分为

    $$0.3 + 0.7 \cdot \left(1-\left(1-\frac{R-0.8}{0.2}\right)^{0.75}\right)$$
  • 否则,得分为

    0.3R0.80.3 \cdot \frac{R}{0.8}