CF2120D.Matrix game

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

Aryan 和 Harshith 玩一个游戏。他们都从三个整数 aa、bb 和 kk 开始。然后 Aryan 给 Harshith 两个整数 nn 和 mm。接着,Harshith 给 Aryan 一个 nn 行 mm 列的矩阵 XX,其中 XX 的每个元素都在 11 到 kk(包含 kk)之间。之后,如果 Aryan 能在 XX 中找到一个 aa 行 bb 列的子矩阵 YY,且 YY 的所有元素都相等,则 Aryan 获胜。

例如,当 a=2a=2,b=2b=2,k=6k=6,n=3n=3 且 m=3m=3 时,如果 Harshith 给 Aryan 如下矩阵,则 Aryan 获胜,因为其中存在一个所有元素都为 11 的 2×22\times 2 子矩阵,如下所示。

Aryan 给你 aa、bb 和 kk 的值。他让你帮他找到字典序最小的二元组 (n,m)(n, m),使得无论 Harshith 如何选择矩阵 XX,Aryan 都能获胜。请帮助 Aryan 赢得游戏。假设 Harshith 总是最优地选择矩阵。nn 和 mm 的值可能很大,请输出它们对 109+710^9+7 取模后的结果。

一个二元组 (n1,m1)(n_1, m_1) 被认为比 (n2,m2)(n_2, m_2) 字典序更小,当且仅当 n1<n2n_1 < n_2,或者 n1=n2n_1 = n_2 且 m1<m2m_1 < m_2。

∗^* 矩阵的子矩阵是通过从原矩阵中去除若干行和/或列得到的。

输入格式

每组测试数据包含多组测试用例。第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4),表示测试用例的数量。

每组测试用例包含一行,包含三个用空格分隔的整数 a,ba, b 和 kk(1≤a,b,k≤1051\leq a, b, k \leq 10^5)。

保证所有测试用例中 max⁡(a,b,k)\max(a, b, k) 的总和不超过 10510^5。

输出格式

对于每组测试用例,输出一行,包含两个用空格分隔的整数 nn 和 mm,表示问题的答案。nn 和 mm 的值可能很大,请输出它们对 109+710^9+7 取模后的结果。

输入输出样例

  • 输入#1

    3
    1 1 5
    2 2 2
    90000 80000 70000

    输出#1

    1 1
    3 7
    299929959 603196135

说明/提示

对于第一个测试用例,任意 n×mn\times m 的矩阵都包含一个 1×11\times 1 的所有元素相等的子矩阵。(1,1)(1,1) 是所有可能二元组中字典序最小的。

对于第二个测试用例,可以验证,无论 Harshith 如何选择 3×73\times 7 的矩阵,Aryan 总能找到一个 2×22\times 2 的所有元素相等的子矩阵。(3,7)(3,7) 也是所有可能二元组中字典序最小的。

由 ChatGPT 4.1 翻译

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

首页