AT4160 [ARC099A] Minimization 题解

题目传送门

思路

对于这道题,读入的 \(a\) 数组最终肯定会变成 \(1\)

\(\because\) 读入的是 \(1 \sim n\),最小值是 \(1\)

\(\therefore\) \(a\) 数组最终肯定会变成 \(1\)

按照最优决策

每次推平一定在 \(1\) 的最边边,扩展时变为 \(1\) 的元素数量为 \(k - 1\) 个。

\(\because\) 一开始已经有一个 \(1\) 了,

\(\therefore\) 答案即为 \(\lceil\ (n - 1)\ \div\ (k - 1)\ \rceil\)

代码如下:

#include <stdio.h>
#include <cmath>

int n, k;

main () {
	scanf ("%d %d", &n, &k) ;
	
	printf ("%d", (int) (ceil ( (n - 1) * 1.0 / (k - 1) ) ) ) ;
}

完结撒花 \(\sim\sim\sim\)

posted @ 2023-07-01 11:23  liukejie  阅读(5)  评论(0编辑  收藏  举报