• 洛谷 P2663 越越的组队


    题目描述

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

    输入输出格式

    输入格式:

     

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

     

    输出格式:

     

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

     

    输入输出样例

    输入样例#1: 复制
    8
    77
    77
    56
    77
    84
    77
    56
    46
    输出样例#1: 复制
    273

    说明

    样例解释:总分550;总分的一半275;选择4名同学56 77 84 56 77 达到总分273;273是不超过275的最大值。(另一队的和是277)两队实力最接近。

    思路:背包。

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int n,v;
    int num[110],f[10010];
    int main(){
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%d",&num[i]),v+=num[i];
        v/=2;
        for(int i=1;i<=n;i++)
            for(int j=v;j>=num[i];j--)
                f[j]=max(f[j],f[j-num[i]]+num[i]);
        cout<<f[v];
    }
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    树的直径 学习笔记
    SDOJ 3742 黑白图
    【SDOJ 3741】 【poj2528】 Mayor's posters
    SDOJ 3740 Graph
    SDOJ 3696 Tree
    SDOJ 1195 Zhenhuan
    又一次受刺激后的发奋
    html_表单form中的input类型大集合
    js_表格的增删改
    JS_拖拽窗口的实现
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/8029740.html
Copyright © 2020-2023  润新知