长沙网站开,用wordpress建的网站,建筑英才网招聘,梧州人才网题目链接#xff1a;牛客_组队竞赛 目录
题目解析
代码书写
知识补充 题目解析 题目让我们求所有队伍的水平值总和最大
由题可得#xff1a;
队伍的水平值等于该队伍队员中第二高水平值;
随机给定3*n个数#xff0c;需要自己组队并且得出队伍水平最大值#xff1b; 我…题目链接牛客_组队竞赛 目录
题目解析
代码书写
知识补充 题目解析 题目让我们求所有队伍的水平值总和最大
由题可得
队伍的水平值等于该队伍队员中第二高水平值;
随机给定3*n个数需要自己组队并且得出队伍水平最大值 我们拿示例分析 首先为了方便分组我们先把数据排序 为了能取到第二高水平值我们这里先从高位取两个数再从低位取一个数
这样就能保证我们所取到的第二位为最高值 此时最高位的下标位置为2、4 以此类推当n为3时取到的最高位的下标位置为357 那么通过推导得到n与最高位的下标的关系为
arr[arr.len(数组长度) -2(i1)i0,in,i)] 代码逻辑 #include iostream
#includevector
#includealgorithm
using namespace std;int main() {//输入int n 0;while (cin n) {vectorint arr;arr.resize(3 * n);for (int i 0; i n * 3; i)cin arr[i];//排序std::sort(arr.begin(), arr.end());//求值long long sum 0;for (int i 0; i n; i)sum arr[arr.size() - (2 * (i 1))];cout sum endl;}return 0;
} 知识补充
1.关于c中vector之resize reserve capacity指容器在分配新的存储空间之前能存储的元素总数。 size指当前容器所存储的元素个数 reserve只改变容器大小(capacity)但并不是真正的创建对象(size) resizeresize既分配了空间(capacity)也创建了对象(size)。 参数 一个表示容器大小一个表示初始值默认为0 reserve只带一个参数表示容器预留的大小。 参考了这篇博客c vector resize reserve_c中将一维数组resize-CSDN博客 C 中的sort()排序函数 该函数可以给数组或者链表list、向量排序。 3个参数 参数1第一个参数是数组的首地址一般是数组名或者迭代器。 参数2要排序数据的尾地址。 参数3默认可以不填如果不填sort会默认按数组升序排序。可以自定义一个排序函数改排序方式为降序。 需要包含头文件#algorithm 参考了这篇博客C 中的sort()排序函数原理、用法看这一篇就够了_c升序函数不用sort-CSDN博客