CF2048F.Kevin and Math Class

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

Kevin 是来自 Eversleeping Town 的一名学生,他正在参加一门数学课,老师正在给他出一些除法练习题。

在黑板上,有两行正整数,每行包含 nn 个数字。第一行是 a1,a2,…,ana_1, a_2, \ldots, a_n,第二行是 b1,b2,…,bnb_1, b_2, \ldots, b_n。

对于每个除法练习题,Kevin 可以选择任何一个区间 [l,r][l, r],并在 bl,bl+1,…,brb_l, b_{l+1}, \ldots, b_r 中找到最小的值 xx。然后他将修改 l≤i≤rl \leq i \leq r 范围内的每个 aia_i,使得每个 aia_i 被 xx 除后的结果向上取整。

更正式地,他选择两个整数 1≤l≤r≤n1 \leq l \leq r \leq n,设 x=min⁡l≤i≤rbix = \min_{l \leq i \leq r} b_i,然后将所有 l≤i≤rl \leq i \leq r 范围内的 aia_i 修改为 $ \lceil \frac{a_i}{x} \rceil$。

Kevin 只有当所有 aia_i 都变为 1 时,才能离开教室回家。他非常渴望回家,想知道实现这一目标所需的最小除法练习次数。

输入格式

每个测试案例包含多个测试用例。第一行是测试用例的数量 tt(1≤t≤1041 \le t \le 10^4)。

每个测试用例的第一行包含一个整数 nn(1≤n≤2⋅1051 \le n \le 2 \cdot 10^5),表示数列 aa 和 bb 的长度。

接下来的一行是 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤10181 \le a_i \le 10^{18}),表示黑板上的第一行数字。

接下来的一行是 nn 个整数 b1,b2,…,bnb_1, b_2, \ldots, b_n(2≤bi≤10182 \le b_i \le 10^{18}),表示黑板上的第二行数字。

保证所有测试用例中 nn 的总和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每个测试用例,输出一个整数 —— 达成目标所需的最小除法练习次数。

输入输出样例

  • 输入#1

    3
    3
    5 4 2
    6 3 2
    5
    3 6 1 3 2
    3 5 3 2 2
    6
    8 3 3 7 5 8
    3 2 3 4 2 3

    输出#1

    2
    3
    3

说明/提示

对于第一个测试用例:
[5,4,2]→min⁡(b1,b2)=3操作区间[1,2][2,2,2]→min⁡(b1,b2,b3)=2操作区间[1,3][1,1,1][{\color{red}{5,4}}, 2] \xrightarrow[\min(b_1, b_2) = 3] {\text{操作区间}[1, 2]} [{\color{red}{2, 2, 2}}] \xrightarrow[\min(b_1, b_2, b_3) = 2]{\text{操作区间}[1, 3]} [1, 1, 1]

对于第二个测试用例:
[3,6,1,3,2]→min⁡(b1,b2,b3)=3操作区间[1,3][1,2,1,3,2]→min⁡(b2,b3,b4)=2操作区间[2,4][1,1,1,2,2]→min⁡(b4,b5)=2操作区间[4,5][1,1,1,1,1][{\color{red}{3, 6, 1}}, 3, 2] \xrightarrow[\min(b_1, b_2, b_3) = 3]{\text{操作区间}[1, 3]} [1, {\color{red}{2, 1, 3}}, 2] \xrightarrow[\min(b_2, b_3, b_4) = 2]{\text{操作区间}[2, 4]} [1, 1, 1, {\color{red}{2, 2}}] \xrightarrow[\min(b_4, b_5) = 2]{\text{操作区间}[4, 5]} [1, 1, 1, 1, 1]

translation from Yorg

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

首页