题意
给一个长度为的数组,每次操作可以将一个数字加到相邻的数字并在数组中删除这个数字,请问最少的操作,使得数组中各项相等。
分析
首先数组和是一定的,所以最后数组和最后一定可以被数组大小整除。
分析这个操作,发现其本质就是将一段区间的数字加到一个位置上。
,要求的是操作,枚举数组大小后保证数组的每一段的和都是数组和除以数组大小,采取前缀和判断即可。
1 |
|
题意
给一个长度为n(1≤n≤3000)的数组a,每次操作可以将一个数字加到相邻的数字并在数组中删除这个数字,请问最少的操作,使得数组中各项相等。
分析
首先数组和是一定的,所以最后数组和最后一定可以被数组大小整除。
分析这个操作,发现其本质就是将一段区间的数字加到一个位置上。
n≤3000,要求的是n2操作,枚举数组大小后保证数组的每一段的和都是数组和除以数组大小,采取前缀和判断即可。
1 | #pragma GCC optimize(3, "Ofast", "inline") |