主要观点总结
本文包含两道题目,分别是关于小明移动算珠和巧克力板的问题。第一个问题要求找出在最多k次移动操作后能得到的最小字典序数组。第二个问题则是帮助小丽找出尽可能小的周长,使得她带上的巧克力板都是边长为整数的正方形。
关键观点总结
关键观点1: 小明移动算珠问题关键点
理解题目中的移动操作与字典序的关系;掌握将k次操作集中于最后一个元素以获取最小字典序数组的策略。
关键观点2: 巧克力板问题关键点
理解如何将总面积n表示为若干数字的平方和;采用贪心策略,优先使用较大的ai值以最小化周长。
正文
k
次后最小字典序数组。
示例
输入
4 2
1 2 2 4
输出
0 1 2 6
解题思路
直接把
k
次都加到最后一个元素即可,将前面的元素尽可能地减直到
k
次用完。
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
int []a = new int[n + 1];
for (int i = 1; i <= n; i++) {
a[i] = sc.nextInt();
}
int tk = k;
for (int i = 1; i <= n - 1; i++) {
if (a[i] <= k) {
k -= a[i];
a[i] = 0;
}else {
a[i] -= k;
break;
}
}
a[n] += tk;
for (int i = 1; i <= n; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
}
}
巧克力
题目描述
小丽明天要出去和同学春游。她准备带上总面积恰好为
n
的巧克力板(简化起见将巧克力板视为平面图形,忽略它的厚度,只考虑面积)去和同学们一起分享。
出于美感的考虑,小丽希望她带上的巧克力板都是边长为整数的正方形;另一方面出于便携性考虑,小丽希望这些巧克力板的周长之和尽可能小,请你帮小丽找出可能的最小周长!
换句话说,小丽需要你帮忙找出
k
个小正方形巧克力板,边长分别为
a1, a2, ..., ak
,使得其面积之和,即