要使每个组合的中位数最大,那么应该从后面开始进行组合。
中位数之后(包括中位数)的数从序列后边开始组合,之前的从序列前边开始组合。
#include<iostream>
using namespace std;
int main()
{
long long t;
cin>>t;
long long sum;
long long a[200006];
while(t--)
{
sum=0;
long long n,m;
cin>>n>>m;
for(long long i=1;i<=n*m;i++)
{
cin>>a[i];
}
long long k;
k=n/2+1;
for(long long i=m*n-k+1;m;i-=k)
{
sum+=a[i];
m--;
}
cout<<sum<<endl;
}
} 


京公网安备 11010502036488号