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