CFCF2172D.Divisor Card Game

省选/NOI-

官方

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

在台湾,许多数学教师设计了棋盘与卡牌类游戏,帮助学生理解复杂的数学概念。近日,一款特别的卡牌游戏在小学和中学教师之间广受欢迎,因为它不仅能有效帮助学生掌握约数和倍数的概念,同时对于师生都极具趣味性。

游戏的规则如下:教师准备 nn 张不同的卡牌,编号为 11nn。第 ii 张卡牌上写有整数 aia_i,并且整数 a1,a2,,ana_1, a_2, \dots, a_n 严格递增。

mm 位学生,编号为 11mm,参与游戏。游戏开始前,每位学生分到一组非空的不相交卡牌子集。任意两名学生分到的卡牌没有重合,且至少有一张卡牌未被分配。

记初始时未被分配的卡牌数量为 kk。游戏共进行 kk 轮。每轮依次进行以下步骤:

  1. 教师从剩余未分配的卡牌中均匀随机选出一张,公开该卡牌。记这张卡牌上写的整数为 cc
  2. 每位学生同时从自己手中选择恰好一张卡牌。
  3. 该牌的归属规则如下:
    • 对所有学生选出的卡牌,找出卡牌值可以被 cc 整除的那些。
    • 若存在至少一张满足条件的卡牌,则选出其中值最小的那一张,对应的学生获得本轮公开的卡牌,并将其加入自己的集合。
    • 若没有任何选出的卡牌满足能被 cc 整除,则该卡牌弃置(无人获得)。弃置的卡牌不会再出现在后续轮次。

每位学生在整个游戏过程中均采用相同的策略:

  • 如果学生手中至少有一张卡牌值能够被 cc 整除,则选择其中值最小的那张;
  • 否则,选择手中值最小的卡牌。

假设所有学生始终按照上述策略出牌,求游戏结束后每位学生期望拥有的卡牌数量。

输入格式

第一行包含两个整数 nnmm,分别表示卡牌总数和学生人数。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n,其中 aia_i 为第 ii 张卡牌上的整数。

第三行包含 nn 个整数 b1,b2,,bnb_1, b_2, \ldots, b_n,其中 bib_i 表示第 ii 张卡牌开始时的归属关系:若 bi0b_i \ne 0,则归属于第 bib_i 位学生,若 bi=0b_i = 0,则为未分配。

  • 1m<n6001 \leq m < n \leq 600
  • 1ai10181 \le a_i \le 10^{18}
  • 0bim0 \leq b_i \leq m
  • 对于所有 1i<n1 \le i < n,有 ai<ai+1a_i < a_{i + 1}
  • j=0,1,,mj=0,1,\ldots,m,至少存在一个 ii 使得 bi=jb_i=j

输出格式

输出 mm 个数,第 ii 个数表示第 ii 位学生在游戏结束时期望拥有的卡牌数。

可以证明,答案可表示为一个分数 pq\frac{p}{q},其中 qq 不是 998244353998244353 的倍数。你需要输出 p×q1mod998244353p\times q^{-1} \bmod 998244353,其中 q1q^{-1} 表示 qq998244353998244353 下的乘法逆元。

输入输出样例

  • 输入#1

    5 2
    1 2 3 4 5
    0 0 1 2 1

    输出#1

    499122179 499122179
首页