CF1988A.Split the Multiset

入门

通过率:0%

AC君温馨提醒

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

题目描述

多重集是一个可以包含相等元素的数集,且元素的顺序无关紧要。例如,{2,2,4}\{2,2,4\} 是一个多重集。

你有一个多重集 SS。最初,多重集只包含一个正整数 nn,即 S={n}S=\{n\}。另外,给定一个正整数 kk。

每次操作,你可以选择 SS 中的任意一个正整数 uu,将 uu 的一个副本从 SS 中移除。然后,向 SS 中插入不超过 kk 个正整数,使得所有插入的整数之和等于 uu。

请你求出最少需要多少次操作,才能使 SS 中包含 nn 个 11。

输入格式

每个测试点包含多组测试数据。第一行包含测试用例数 tt(1≤t≤10001 \le t \le 1000)。接下来每组测试数据占一行,每行包含两个整数 n,kn,k(1≤n≤1000, 2≤k≤10001\le n\le 1000,\,2\le k\le 1000)。

输出格式

对于每组测试数据,输出一个整数,表示所需的最小操作次数。

输入输出样例

  • 输入#1

    4
    1 5
    5 2
    6 3
    16 4

    输出#1

    0
    4
    3
    5

说明/提示

对于第一个测试用例,初始时 S={1}S=\{1\},已经满足要求,因此需要 00 次操作。

对于第二个测试用例,初始时 S={5}S=\{5\}。可以按如下方式操作:

  • 选择 u=5u=5,将 uu 从 SS 中移除,插入 2,32,3 到 SS。此时 S={2,3}S=\{2,3\}。
  • 选择 u=2u=2,将 uu 从 SS 中移除,插入 1,11,1 到 SS。此时 S={1,1,3}S=\{1,1,3\}。
  • 选择 u=3u=3,将 uu 从 SS 中移除,插入 1,21,2 到 SS。此时 S={1,1,1,2}S=\{1,1,1,2\}。
  • 选择 u=2u=2,将 uu 从 SS 中移除,插入 1,11,1 到 SS。此时 S={1,1,1,1,1}S=\{1,1,1,1,1\}。

共进行了 44 次操作,达成目标。

对于第三个测试用例,初始时 S={6}S=\{6\}。可以按如下方式操作:

  • 选择 u=6u=6,将 uu 从 SS 中移除,插入 1,2,31,2,3 到 SS。此时 S={1,2,3}S=\{1,2,3\}。
  • 选择 u=2u=2,将 uu 从 SS 中移除,插入 1,11,1 到 SS。此时 S={1,1,1,3}S=\{1,1,1,3\}。
  • 选择 u=3u=3,将 uu 从 SS 中移除,插入 1,1,11,1,1 到 SS。此时 S={1,1,1,1,1,1}S=\{1,1,1,1,1,1\}。

共进行了 33 次操作,达成目标。

对于第四个测试用例,初始时 S={16}S=\{16\}。可以按如下方式操作:

  • 选择 u=16u=16,将 uu 从 SS 中移除,插入 4,4,4,44,4,4,4 到 SS。此时 S={4,4,4,4}S=\{4,4,4,4\}。
  • 重复 44 次:选择 u=4u=4,将 uu 从 SS 中移除,插入 1,1,1,11,1,1,1 到 SS。

共进行了 55 次操作,达成目标。

由 ChatGPT 4.1 翻译

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

首页