CF2006D.Iris and Adjacent Products
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Iris 刚刚在数学课上学会了乘法。然而,由于她的大脑无法承受过于复杂的计算,她不能将两个乘积大于 k 的整数相乘,否则她的大脑可能会爆炸!
她的老师每天都会布置一道难题作为暑假作业。现在给定一个包含 n 个元素的数组 a,她需要计算每两个相邻元素的乘积(即 a1⋅a2、a2⋅a3,以此类推)。Iris 希望她的大脑能够安全工作,为此她希望修改数组 a,使得对于每个 1≤i<n,都有 ai⋅ai+1≤k。她可以进行以下两种操作:
- 她可以以任意方式重新排列数组 a 的元素。
- 她可以选择数组 a 的任意一个元素,并将其更改为 1 到 k 之间的任意整数。
Iris 希望最小化她使用第 2 种操作的次数。
然而,这还不是暑假的全部!暑假持续 q 天,在第 i 天,Iris 需要完成子数组 bli,bli+1,…,bri 的数学作业。请帮助 Iris,告诉她每一天最少需要进行多少次第 2 种操作。注意,每一天的操作是独立的,即数组 b 不会被改变。
输入格式
每组测试数据包含多个测试用例。第一行包含一个整数 t(1≤t≤5⋅104)——表示测试用例的数量。每组测试用例的描述如下:
每个测试用例的第一行包含三个整数 n、q 和 k(2≤n≤105,1≤q≤105,1≤k≤106)——数组 b 的长度、天数以及乘法计算的上限。
每个测试用例的第二行包含 n 个整数 b1,b2,…,bn(1≤bi≤k)——数组 b 的元素。
接下来 q 行,每行包含两个整数 li 和 ri(1≤li<ri≤n)——第 i 天作业的子数组区间。
保证所有测试用例中 n 的总和不超过 105,q 的总和不超过 105。
输出格式
对于每组测试用例,输出一行包含 q 个整数,表示每一天最少需要进行多少次第 2 种操作。
输入输出样例
输入#1
5 3 1 1 1 1 1 1 3 3 2 10 1 10 9 1 3 2 3 5 4 2 2 2 2 2 2 1 2 2 4 2 5 1 5 6 5 10 3 2 5 10 10 1 1 4 3 6 1 6 2 5 5 6 10 10 10 10 9 8 7 6 5 4 3 2 1 1 10 1 9 1 8 1 7 2 10 3 10 4 10 5 10 3 9 6 8
输出#1
0 0 1 1 1 2 2 1 1 1 1 0 3 3 4 3 2 2 1 1 2 1
说明/提示
在第一个测试用例中,由于 Iris 总可以将 1 和 1 相乘,所以不需要任何操作,因此答案为 0。
在第二个测试用例中,第一天的作业是 [1,10,9]。Iris 可以将其重新排列为 [9,1,10],因此不需要进行任何第 2 种操作。第二天的作业是 [10,9],她可以将其中一个元素改为 1,得到 [1,9],因此需要进行一次第 2 种操作。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?