零一编程社吧 关注:2贴子:37
  • 5回复贴,共1

每天来一道编程题,每天都大快人心!!

只看楼主收藏回复



IP属地:山东1楼2015-02-10 21:29回复
    1129 三国游戏
    题目描述 Description
    小涵很喜欢电脑游戏,这些天他正在玩一个叫做《三国》的游戏。 在游戏中,小涵和计算机各执一方,组建各自的军队进行对战。游戏中共有N 位武将(N 为偶数且不小于4),任意两个武将之间有一个“默契值”,表示若此两位武将作为一对组合 作战时,该组合的威力有多大。游戏开始前,所有武将都是自由的(称为自由武将,一旦某 个自由武将被选中作为某方军队的一员,那么他就不再是自由武将了),换句话说,所谓的 自由武将不属于任何一方。游戏开始,小涵和计算机要从自由武将中挑选武将组成自己的军 队,规则如下:小涵先从自由武将中选出一个加入自己的军队,然后计算机也从自由武将中 选出一个加入计算机方的军队。接下来一直按照“小涵→计算机→小涵→……”的顺序选择 武将,直到所有的武将被双方均分完。然后,程序自动从双方军队中各挑出一对默契值最高 的武将组合代表自己的军队进行二对二比武,拥有更高默契值的一对武将组合获胜,表示两 军交战,拥有获胜武将组合的一方获胜。 已知计算机一方选择武将的原则是尽量破坏对手下一步将形成的最强组合,它采取的具 体策略如下:任何时刻,轮到计算机挑选时,它会尝试将对手军队中的每个武将与当前每个 自由武将进行一一配对,找出所有配对中默契值最高的那对武将组合,并将该组合中的自由 武将选入自己的军队。 下面举例说明计算机的选将策略,例如,游戏中一共有6 个武将,他们相互之间的默契 值如下表所示

    小涵想知道,如果计算机在一局游戏中始终坚持上面这个策略,那么自己有没有可能必 胜?如果有,在所有可能的胜利结局中,自己那对用于比武的武将组合的默契值最大是多 少? 假设整个游戏过程中,对战双方任何时候均能看到自由武将队中的武将和对方军队的武 将。为了简化问题,保证对于不同的武将组合,其默契值均不相同。
    对于40%的数据有N≤ 10。
    对于70%的数据有N≤ 18。
    对于100%的数据有N≤ 500
    输入描述 Input Description
    输入共N 行。 第一行为一个偶数N,表示武将的个数。 第2 行到第N 行里,第(i+1)行有(N−i)个非负整数,每两个数之间用一个空格隔 开,表示i 号武将和i+1,i+2,……,N 号武将之间的默契值(0 ≤ 默契值≤ 1,000,000,000)。
    输出描述 Output Description
    输出共1 或2 行。 若对于给定的游戏输入,存在可以让小涵获胜的选将顺序,则输出1,并另起一行输出 所有获胜的情况中,小涵最终选出的武将组合的最大默契值。 如果不存在可以让小涵获胜的选将顺序,则输出0。
    样例输入 Sample Input
    6
    5 28 16 29 27
    23 3 20 1
    8 32 26
    33 11
    12
    样例输出 Sample Output
    1
    32
    数据范围及提示 Data Size & Hint
    首先小涵拿走5 号武将;计算机发现5 号武将和剩下武将中的4 号默契值最高,于是拿走4 号;小涵接着拿走3 号;计算机发现3、5 号武将之一和剩下的武将配对的所有组合中,5 号和1 号默契值最高,于是拿走1 号;小涵接着拿走2 号;计算机最后拿走6 号。在小涵手里的2,3,5 号武将中,3 号和5 号配合最好,默契值为32,而计算机能推出的最好组合为1 号和6 号,默契值为27。结果为小涵胜,并且这个组合是小涵用尽所有方法能取到的最好组合。


    IP属地:山东3楼2015-02-10 21:30
    回复
      2025-12-10 08:16:01
      广告
      不感兴趣
      开通SVIP免广告
      1415 比那名居天子
      题目描述 Description
      在幻想乡, 比那名居天子是管理着『要石』的人。能够引发和镇压地震存在幻想乡, 比那名居天子是管理着『要石』的人。能够引发和镇压地震存当然也可以用来改变地形。因为在幻想乡引发震,而被灵梦等人教训了之后天子不 得当然也可以用来改变地形。因为在幻想乡引发震,而被灵梦等人教训了之后天子不 得当然也可以用来改变地形。因为在幻想乡引发震,而被灵梦等人教训了之后天子不 得当然也可以用来改变地形。因为在幻想乡引发震,而被灵梦等人教训了之后天子不 得当然也可以用来改变地形。因为在幻想乡引发震,而被灵梦等人教训了之后天子不 得当然也可以用来改变地形。因为在幻想乡引发震,而被灵梦等人教训了之后天子不 得当然也可以用来改变地形。因为在幻想乡引发震,而被灵梦等人教训了之后天子不 得使用『要石』来修复地面。幻想乡可以视为 长度为 N个格子的一条横轴 ,其中有些格子的土 地由于震被破坏 (记为 1) ,有 些格子则没(记为 0) 。每次使用『要石』,可以把 。每次使用『要石』,可以把 一段长度 为 L的格子全部修复完成 的格子全部修复完成 的格子全部修复完成 的格子全部修复完成 的格子全部修复完成 (即将 1变为 0,L覆盖的范围可以超出地图 ),当然 L越大,使用 时所花费的灵力也就越多。天子希望 最多使用 K次『要石』就将所有被破坏的土地 全部修复 完成 (即将 1全部变为 0) ,并且花费尽可能小的 灵力。她想知道够达到这个目,并且花费尽可能小的 灵力。她想知道够达到这个目L最小 是多少。
      输入描述 Input Description
      输入格式
      第 1行: 2个整数, N, KN, KN, KN, K
      第 2行: 1个 01 串,长度为 N
      输出描述 Output Description
      输出格式 第 1行: 1个整数, L的最小值
      样例输入 Sample Input
      输入样例
      10 310 310 310 3
      0101111011
      样例输出 Sample Output
      输出样例 3
      数据范围及提示 Data Size & Hint
      样例解释
      0101 111011 > 0000111011 > 0000111011 > 0000111011 > 0000111011 > 0000111011 > 0000111011 > 0000111011 > 0000 111011 > 0000111011 > 0000111011 > 0000111011 > 0000111 011 > 00000000011 > 00000000011 > 00000000011 > 00000000011 > 00000000 011 > 00000000011 > 00000000011 > 00000000011 > 00000000011 > 00000000011 > 00000000011 > 00000000011 > 00000000011 > 0000000000 > 0000000000> 0000000000> 0000000000> 0000000000> 0000000000> 0000000000> 0000000000> 0000000000> 0000000000> 0000000000 数据范围 对于 60% 的数据: 1 ≤ N,K 5,000 1 ≤ N,K 5,000 1 ≤ N,K 5,000 1 ≤ N,K 5,000 1 ≤ N,K 5,000 1 ≤ N,K 5,000 1 ≤ N,K 5,000 1 ≤ N,K 5,000 1 ≤ N,K 5,000 1 ≤ N,K 5,000 1 ≤ N,K 5,000 1 ≤ N,K 5,000 1 ≤ N,K 5,000 对于 100% 的数据: 1 ≤ N,K 500,000 1 ≤ N,K 500,000 1 ≤ N,K 500,000 1 ≤ N,K 500,000 1 ≤ N,K 500,000 1 ≤ N,K 500,000 1 ≤ N,K 500,000 1 ≤ N,K 500,000 1 ≤ N,K 500,000 1 ≤ N,K 500,000 1 ≤ N,K 500,000 1 ≤ N,K 500,000 1 ≤ N,K 500,000 1 ≤ N,K 500,000 1


      IP属地:山东11楼2015-02-10 21:32
      回复
        1422 河城荷取
        题目描述 Description
        在幻想乡,河城荷取是擅长高科技工业的河童。荷取的得意之作除了光学迷彩外,还有震动整个幻想乡的巨型人形『非想天则』。不过由于人形太过巨大,所以为它充能是一件很麻烦的事。人形一共有N个电能池,编号1..N。其中前L个电能池(即编号为1..L的电能池)连接着外部充能接口,而编号为N的电能池连接着动力炉核心。在N个蓄能池之间有M条单向管道,每条管道有一个激活代价cost和电能传输极限limit。当激活度达到某个值时,所以激活代价小于等于这个值的管道都会被激活,但是每一条管道只能够最多传送limit个单位的电能。外部接口到电能池和电能池到动力炉核心的管道传输没有限制并且激活代价为0。现在荷取想往动力炉核心输入至少K个单位的电能,求需要的最小激活度。
        输入描述 Input Description
        第1行:4个正整数N,M,L, K
          第2..M行:4个整数,u,v,limit,cost,表示一条由u到v的管道,传输极限limit,激活代价为cost
        输出描述 Output Description
        第1行:1个整数,表示最小激活代价
        样例输入 Sample Input
        6 5 3 3
        1 4 2 4
        2 4 3 5
        3 5 4 2
        4 6 2 3
        5 6 3 4
        样例输出 Sample Output
        4
        数据范围及提示 Data Size & Hint
        数据范围
          对于30%的数据:1 ≤ L ≤ N ≤ 100,0 ≤ M ≤ 2,000,1 ≤ cost ≤ 10,000
          对于60%的数据:1 ≤ L ≤ N ≤ 1,000,0 ≤ M ≤ 20,000,1 ≤ cost ≤ 10,000
          对于100%的数据:1 ≤ L ≤ N ≤ 2,000,0 ≤ M ≤ 80,000,1 ≤ cost ≤ 1,000,000
          对于100%的数据:1 ≤ limit ≤ 1,000
         提示
          样例解释:
          当激活度为4时,除了(2,4)外其他管道都能够使用。此时能够输入恰好4个单位电能。具体如下:
          (1,4) 输送2个单位电力
          (4,6) 输送2个单位电力
          (3,5) 输送2个单位电力
          (5,6) 输送2个单位电力
          注意:
          保证任意(u,v)都只出现一次。


        IP属地:山东16楼2015-02-10 21:33
        回复
          3016 质子撞击炮 II
          题目描述 Description
          欧盟简直是太贪心了。继完成与苏联的合作灭了尤里之后,继续与苏联交战。可惜的是,在这期间,传说中的小日本(旭日帝国·升阳帝国)居然强大起来了。盟军重新与苏联合作,准备歼灭日本。在小爱(爱因斯坦)之后,不少盟军的杰出科学家合作发明了闪电风暴二代:质子撞击炮。它的好处就是冷却时间短,威力大。每当一次攻击过后,五发质子能量炮弹一齐落在敌人基地里,造成毁灭性的打击。缺点就是,炮弹先打到外太空再掉进敌人家中,飞的时间太长了。盟军老大迫不及待的想知道这次攻击能毁掉日本多少建筑物,请你编程帮忙算一下。数据详见输入描述。
          输入描述 Input Description
          输入的第一行n,表示敌方阵营的大小。
          输入的第2~n+1,表示输入一个敌方阵营图。阵营图中每个元素由0-9组成。0表示没有建筑物,其余数字表示当前建筑物的血量值。(默认每个建筑物占一个方格)。
          输入的接下来五行,表示五发质子能量炮弹的落点中心,表示落点在笛卡尔坐标系的某个点上。质子能量炮弹对中心造成2点伤害,对以该点为九宫格中心的其他八个方格造成一点伤害。如果某个点的建筑物血量被轰击至0或更低,则称这个建筑物被击毁。
          输出描述 Output Description
          仅一行,被击毁的建筑物数量。
          样例输入 Sample Input
          5
          0 3 1 2 4
          1 3 4 1 0
          0 0 3 4 1
          1 3 4 5 0
          0 0 9 0 0
          1 2
          2 2
          4 3
          4 3
          2 4
          样例输出 Sample Output
          8
          数据范围及提示 Data Size & Hint
          (点a,点b)表示第a行第b列
          原题有误,我更正一下。
          顺便加强了数据(最大1000*1000的邻接矩阵);


          IP属地:山东20楼2015-02-16 08:25
          回复
            2283 DOTA
            题目描述 Description
            很多童鞋喜欢玩一些lol、dota这类游戏,这类游戏有一个特点,在你不死的情况下连续杀人会有不同称号。
            下面输入一组字符,其中只包含K和D,K代表杀敌,D代表死亡,求他最高称号。
            0/1/2 - You are a Foolish Man
            3 - You are on a Killing Spree
            4 - You are Dominating
            5 - You have a Mega-Kill
            6 - You are Unstoppable
            7 - You are Wicked Sick
            8 - You have a M-m-m-m....Monster Kill
            9 - You are Godlike
            10+ - You are Beyond Godlike (Somebody kill him!)
            样例输入
            KKKDKKDDDKKKK
            样例输出
            You are Dominating


            IP属地:山东21楼2015-02-16 08:26
            回复