每次都是选取最大的那i*j个数字
所以用前缀和维护 累加即可
import java.math.*; import java.util.*; public class Main { public static int a[]; public static long sum[]; public static void main(String args[]) { Scanner input = new Scanner(System.in); int n = input.nextInt(); a = new int[n+1]; sum = new long[n+1]; for(int i=1;i<=n;i++) { a[i] = input.nextInt(); } long ans=0; Arrays.sort(a); for(int i=1;i<=n;i++) { sum[i] = sum[i-1]+a[n-i+1]; } int x = input.nextInt(); int y = input.nextInt(); for(int i=1;i<=x;i++) { for(int k=1;k<=y;k++) { ans+=sum[i*k]; } } System.out.println(ans); } }