CF2029A.Set
入门
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个正整数 k 和一个集合 S,S 包含所有从 l 到 r(包含两端)之间的整数。
你可以进行如下的两步操作任意次(可以为零次):
- 首先,从集合 S 中选择一个数 x,要求在 S 中至少有 k 个 x 的倍数(包括 x 本身);
- 然后,将 x 从 S 中移除(注意,其他元素不变)。
请你求出最多可以进行多少次这样的操作。
输入格式
每组测试数据包含多组测试用例。输入的第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。接下来每组测试用例一行,包含三个整数 l、r 和 k(1≤l≤r≤109,1≤k≤r−l+1),分别表示集合 S 的最小值、最大值和参数 k。
输出格式
对于每组测试用例,输出一个整数,表示最多可以进行多少次操作。
输入输出样例
输入#1
8 3 9 2 4 9 1 7 9 2 2 10 2 154 220 2 147 294 2 998 24435 3 1 1000000000 2
输出#1
2 6 0 4 0 1 7148 500000000
说明/提示
在第一个测试用例中,初始时 S={3,4,5,6,7,8,9}。一种可能的最优操作序列如下:
- 第一次选择 x=4,因为 S 中有两个 4 的倍数:4 和 8。S 变为 {3,5,6,7,8,9};
- 第二次选择 x=3,因为 S 中有三个 3 的倍数:3、6 和 9。S 变为 {5,6,7,8,9}。
在第二个测试用例中,初始时 S={4,5,6,7,8,9}。一种可能的最优操作序列如下:
- 选择 x=5,S 变为 {4,6,7,8,9};
- 选择 x=6,S 变为 {4,7,8,9};
- 选择 x=4,S 变为 {7,8,9};
- 选择 x=8,S 变为 {7,9};
- 选择 x=7,S 变为 {9};
- 选择 x=9,S 变为 {}。
在第三个测试用例中,初始时 S={7,8,9}。对于 S 中的每个 x,除了 x 本身外,S 中都找不到 x 的倍数。因为 k=2,所以无法进行任何操作。
在第四个测试用例中,初始时 S={2,3,4,5,6,7,8,9,10}。一种可能的最优操作序列如下:
- 选择 x=2,S 变为 {3,4,5,6,7,8,9,10};
- 选择 x=4,S 变为 {3,5,6,7,8,9,10};
- 选择 x=3,S 变为 {5,6,7,8,9,10};
- 选择 x=5,S 变为 {6,7,8,9,10}。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?