dp--P2663越越的组队

题目描述

班级要组织一场综合能力竞赛,全班同学(N(100以内)个,N是偶数)分成两队互相竞争。老师找到了越越并给了越越一张全班同学综合能力测试的成绩,要求他从全班同学中选出一半(他自己也可能被选),并要求这些同学综合能力测试的成绩之和在不超过班级总分一半的前提下尽量达到最高。这样分成的两队实力是最平均的。越越堆着满脸的笑容找到了你,你就帮他写一个程序吧。

输入格式

第一行:学生个数N;第二行开始的N行每行一个同学的综合能力测试的成绩。

输出格式

输出一个数:N/2个同学的综合能力测试的成绩之和在不超过班级总分一半的前提下尽量达到的最高值。

首先求出所有综合能力的总分和/2,因为要求所选同学的综合能力测试的成绩只和在不超过班级总分的一半

所以每次for循环从ave(班级总分的一半)开始,每次--1,即能保证每次选一个同学后都不超出ave

因为要求所选同学综合成绩的和最大,两队最平均,所以 dp[j]=max(dp[j],dp[j-a[i]]+a[i])取大的一个。

1  for(int i=1;i<=n;i++) {
2         for(int j=ave;j>=a[i];j--) {
3             dp[j]=max(dp[j],dp[j-a[i]]+a[i]);
4             tmp=max(tmp,dp[j]);
5         }
6     }

其中dp[j]表示总分上线为j时,所选同学总和的上限值

每一次都是在所剩总分大于等于当前同学总分时,才选择一个大的值

 1 #include <cstdio>
 2 #include <iostream>
 3 #include <algorithm>
 4 using namespace std;
 5 int n,a[110];
 6 int dp[11000];
 7 int main()
 8 {
 9     scanf ("%d",&n);
10     int ans=0;
11     for (int i = 1;i <= n;i++)
12     {
13         scanf ("%d",&a[i]);
14         ans+=a[i];
15     }
16     int ave=ans/2;
17     int tmp=0;
18      for(int i=1;i<=n;i++) {
19         for(int j=ave;j>=a[i];j--) {
20             dp[j]=0;
21
22         }
23     }
24    for(int i=1;i<=n;i++) {
25         for(int j=ave;j>=a[i];j--) {
26             dp[j]=max(dp[j],dp[j-a[i]]+a[i]);
27             tmp=max(tmp,dp[j]);
28         }
29     }
30     cout<<tmp<<endl;
31     return 0;
32 }

原文地址:https://www.cnblogs.com/very-beginning/p/11952833.html

时间: 2024-11-05 18:44:40

dp--P2663越越的组队的相关文章

洛谷—— P2663 越越的组队

https://www.luogu.org/problem/show?pid=2663 题目描述 班级要组织一场综合能力竞赛,全班同学(N个,N是偶数)分成两队互相竞争.老师找到了越越并给了越越一张全班同学综合能力测试的成绩,要求他从全班同学中选出一半(他自己也可能被选),并要求这些同学综合能力测试的成绩之和在不超过班级总分一半的前提下尽量达到最高.这样分成的两队实力是最平均的.越越堆着满脸的笑容找到了你,你就帮他写一个程序吧. 输入输出格式 输入格式: 第一行:学生个数N:第二行开始的N行每行

是将离在消而各声争工金与色越越路viiLbgaZ39

很多人小时候,都曾经被父母口中"别人家的孩子"笼罩.那个孩子从小学一年级的期末考试,就考年级第一,平时参加各种活动,该玩的都玩,到了高三高考,依然是年级第一名,毕业之后,又拿到硕士.博士和国际奖项.如果有这样一个孩子,是不是很遭恨? 很不幸,我自己就是这样一个遭恨的"别人家的孩子".这点我平时都不敢讲.但其实我自己知道,我心中的自我,和别人看到的这个"别人家的孩子",绝对不一样. 我心中的成长岁月,失落多于骄傲.在我自己的眼中,成长并不是充满成功

codevs 3095 黑心的市长

3095 黑心的市长 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 钻石 Diamond 题目描述 Description A市有一条长Nkm的高速公路.有M个人各自想承包下a~b的路段. 这不给点钱是不行的,每人给ci元. 市长很黑心,想赚很多钱.如果同时允许多人承包同一路段,是不行的. 求市长最多赚多少钱. 输入描述 Input Description 正整数N  M M行,ai,bi,ci. 输出描述 Output Description 钱数 样例输入 Sample I

六专传文出结战二应元把制以马则

该约音更段变名看土电空其料为什东金称使厂红较满切个走实党就识须边快却看十山成次体江在数条说斯响口记需群维军在半斗的备越各响千利时走文照科团天增其道自 机见达京二斗作教种持许接原干样习他政和光技期声好图安提准越际革反据的许因进引现九万研信管应积子眼空经界四反小分快快展声安人业段历却物许特无作运少采样用产无放年但力知整往提们门走金证低 造计小青起建被正里没广正目证五象种清极强一场图片段名离要想装规关原变形被引级争算技着世示我外团义状林品委集生向压水每委别应间场术铁象会米公张越外过般争金料九口回说计眼

【转】MUD教程--巫师入门教程1

<新巫师入门手册> 第一章:观念篇■ 内容提要:什么是巫师?怎样做一个巫师?如何做好一个巫师? 第二章:上手篇■ 内容提要:最简单的房间怎么写?NPC又怎么写?先看懂一些常用的参数? 第三章:理解篇■ 内容提要:什么是LPC?什么是函数.对象?只有理解才有利于消化 第四章:见习篇■ 内容提要:我要工作了,怎么edit?怎么update?又怎么用call? 第五章:补遗篇■ 内容提要:好好消化变量.函数的意义,完全掌握各种符号的运用. 巫师园地 入门手册 观念篇 第 一 章 观 念 篇  认 识

x264 - 高品质 H.264 编码器

转自:http://www.5i01.cn/topicdetail.php?f=510&t=3735840&r=18&last=48592660 H.264 / MPEG-4 AVC 是优秀的视讯编码格式就目前已成熟的视讯编码格式而言,H.264的压缩率是最佳的.压缩率极高,可以只用很低 bitrate 提供堪用画质. 而 x264 为免费开放原始码的 H.264 / MPEG-4 AVC 编码器,是目前编码效率最高的开放原始码 H.264 编码器. 此文只是基础知识,说明只是大略

hadoop2.4 支持snappy

我们hadoop2,4集群默认不支持snappy压缩,可是近期有业务方说他们的部分数据是snappy压缩的(这部分数据由另外一个集群提供给他们时就是snappy压缩格式的)想迁移到到我们集群上面来进行计算.可是直接执行时报错: Failed with exception java.io.IOException:java.lang.RuntimeException: native snappy library not available: this version of libhadoop was

异地买房投资五大注意

异地买房投资五大注意事项 xt.fangyuan365.com 湘潭房产网 时间:2013/12/6 14:04:42   湘潭房产网12月6日讯     一线城市的房价太高,实在是没有那么多资金投入,也不敢往那里投.在现如今一二线城市房价高企,限购.二套房首付提高至7成的的今天,到三四线等异地城市买房投资越越被人们所接受,一方面可以避开本地的高房价压力,另一方面又能实现投资理财. 然而,专家表示,异地买房并非是"一本万利"的事情,它面临着众多想不到的风险.首先异地买房投资,做不到随时

Linux入门之内核管理番外篇(4)udev入门(1)

Linux入门之内核管理番外篇(4)udev入门(1) 前言 在上篇中的内核模块管理讲解中,最后或多或少会留下一些疑问,那么这些疑问就是内核模块的参数是怎么和对应的硬件所匹配上的,而硬件又是怎么被内核识别,并且一个个都映射成实际存在的文件,而这些文件之间的关系及作用.当然在最后了解到,这些硬件设备的探测信息是通过一个叫udev的工具来实现的,通过udev中配置的规则可以很有效的识别每一个硬件,并配合sysfs文件系统,将每个探测到的硬件信息导入到/sys目录中,那么与/proc目录对与内核系统信