zoukankan      html  css  js  c++  java
  • 足球队

    【题目描述】

    现希望组建一支足球队,一支足球队一般由11人组成。这11人有四种不同的职业:守门员、后卫、中锋和前锋。

    组队的时候必须满足以下规则:

    (1)足球队恰好由11人组成;

    (2)11人中恰好有1名守门员,3~5名后卫,2~5名中锋,1~3名前锋;

    (3)11人中选出一名队长;

    (4)足球队的价值是11人的价值之和再加上队长的价值,也就是说队长的价值会被计算两次;

    (5)足球队的花费是11人的花费之和,花费之和不能超过给定的上限;

    现给定球员的总数和每个球员的职业、价值、花费,以及花费的上限,

    希望在满足要求的情况下,达到以下目标:

    (1)最大化队伍的价值;

    (2)在最大化队伍的价值的情况下,最小化队伍的花费;

    (3)在满足以上两个要求的情况下,有多少种选择球员的方案,如果有两种方案它们的区别仅仅是队长不一样, 那么这两种方案应该被认为是一种方案;

    要求输出三个值:价值、花费、方案数。

    【输入描述】

    第一行一个正整数N,代表可选的球员个数;

    接下来N行,每行输入一个球员的信息。

    每行开头输入一个字符串,可能的字符串有:Goalkeeper、Defender、Midfielder、Forward,分别代表该球员的职业是守门员、后卫、中锋、前锋;

    接下来输入两个数V、C,分别代表该球员的价值和花费;

    最后一行输入一个整数,代表花费的上限。

    数据保证一定存在解。

    【输出描述】

    输出一行,包含三个整数,分表代表最大价值、最小花费和方案数。如果方案数超过了109,则直接输出109

    【样例输入】

    15

    Defender 23 45

    Midfielder 178 85

    Goalkeeper 57 50

    Goalkeeper 57 50

    Defender 0 45

    Forward 6 60

    Midfielder 20 50

    Goalkeeper 0 50

    Midfielder 64 65

    Midfielder 109 70

    Forward 211 100

    Defender 0 40

    Defender 29 45

    Midfielder 57 60

    Defender 52 45

    600

    【样例输出】

    716 600 2

    【数据范围及提示】

    样例中,选择所有的五名后卫,选择价值为178、20、54、109的中锋和价值为6的前锋,两名守门员任意选择,选择价值为178的中锋作为队长。

    对于30%的数据,N ≤ 20;

    对于60%的数据,费用上限足够大;

    对于100%的数据,1 ≤ N ≤ 500,所有球员的价值和花费以及花费上限均在[0,1000]。

  • 相关阅读:
    .NET设计模式外观模式(Façade Pattern)
    .NET设计模式创建型模式专题总结(Creational Pattern)
    MFC深入浅出消息映射的实现
    .NET设计模式代理模式(Proxy Pattern)
    .NET设计模式工厂方法模式(Factory Method)
    Web Services Security (转)
    MYSQL数据库的查询优化技术
    U盘插入拔出提示
    SQL存储过程(ASP.NET)
    在SQL Server中使用种子表生成流水号注意顺序
  • 原文地址:https://www.cnblogs.com/Ackermann/p/5929115.html
Copyright © 2011-2022 走看看