CF1983E.I Love Balls

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

Alice 和 Bob 正在玩一个游戏。有 nn 个球,其中有 kk 个是特殊球。每个球都有一个与之相关的数值。

两位玩家轮流进行操作。每一回合,玩家会随机选择一个球,并将该球的数值加到自己的得分上,初始得分为 00。被选中的球会从游戏中移除。如果选中的球是特殊球,并且游戏中还剩下至少一个球,那么当前玩家继续进行下一回合。如果选中的球不是特殊球,则由另一位玩家进行下一回合。

他们会一直玩到所有球都被取完为止。Alice 先手。

请你计算游戏结束时,Alice 和 Bob 的期望得分,并对 109+710^9+7 取模。

形式化地,设 M=109+7M = 10^9+7。可以证明答案可以表示为最简分数 pq\frac{p}{q},其中 pp 和 qq 是整数,且 q≢0(modM)q \not\equiv 0 \pmod{M}。请输出等于 p⋅q−1 mod Mp \cdot q^{-1} \bmod M 的整数。换句话说,输出一个整数 xx,满足 0≤x<M0 \le x < M 且 x⋅q≡p(modM)x \cdot q \equiv p \pmod{M}。

输入格式

有多组测试数据。输入的第一行包含一个整数 tt,表示测试用例的数量(1≤t≤2×1051 \le t \le 2 \times 10^5)。

每组测试数据的第一行包含两个整数 nn 和 kk,用空格分隔(1≤k≤n≤4×1051 \le k \le n \le 4 \times 10^5)。

每组测试数据的第二行包含 nn 个整数:v1,v2,…,vnv_1, v_2, \ldots, v_n,分别表示每个球的数值,空格分隔。前 kk 个球是特殊球(1≤vi≤1071 \le v_i \le 10^7)。

所有测试用例中 nn 的总和不超过 5×1055 \times 10^5。

输出格式

对于每组测试数据,输出两行,每行一个整数,分别表示 Alice 和 Bob 的期望得分对 109+710^9+7 取模后的结果。

输入输出样例

  • 输入#1

    1
    5 2
    10 20 5 15 25

    输出#1

    45 30
  • 输入#2

    5
    1 1
    732507
    2 2
    5817860 5398510
    5 1
    2122894 4951549 2750585 7821535 3214167
    8 4
    1405323 5069867 6883092 6972029 328406 2478975 7628890 9973340
    4 2
    9662050 3566134 3996473 9872255

    输出#2

    732507 0
    11216370 0
    810642660 210218077
    722402997 318336932
    349086489 678010430
  • 输入#3

    5
    3 3
    1095611 8219204 7773462
    2 1
    8176490 2774103
    3 1
    9178636 5138057 3367761
    12 9
    7597698 6843019 2298534 1522386 4969588 1340345 3967362 9152890 6689668 9986080 4745473 7407325
    10 5
    6986368 2397882 5804127 6980694 3740836 3215836 5195724 3179261 4136769 4544231

    输出#3

    17088277 0
    6862348 4088245
    677038671 340645790
    36949997 29570371
    725118051 321063684

说明/提示

在第一个测试用例中,Alice 的期望得分为 4545,Bob 的期望得分为 3030。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页