赞
踩
题目大意
有多个学校,每个学校若干名学生,每个学生有不同的能力,要求每个队人数有k(k>=1&&k<=n)的限制,只有当每个队人数为k时,才能派出比赛,问在不同人数下,能力值总和最大为多少?
思路
能力值高者优先派出,所以从大到小排个序,然后用每个学校的队员数模一个队的人数,有余数就不派倒数的几个人去。这样可以的到最优解。
通过代码
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimization ("unroll-loops")
using namespace std;
#define ll long long
#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define sl(n) scanf("%lld",&n)
#define pl(n) printf("%lld",n)
#define sdf(n) scanf("%lf",&n)
#define pdf(n) printf("%.lf",n)
#define pE printf("\n")
#define ull unsigned long long
#defi
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。