BITCS2016程序设计 | 15. 谁更机智

15. 谁更机智

成绩 0 开启时间 2016年09月9日 星期五 11:30
折扣 0.8 折扣时间 2016年09月14日 星期三 23:30
允许迟交 关闭时间 2016年10月10日 星期一 23:30

题目描述

Alice: 上课好无聊啊!!!

Bob:那你想干嘛?

Alice:我们来玩游戏好伐?

Bob:好哇!咋玩?

Alice:我们写n个正整数,然后轮流拿数字,每次可以拿任意多个,每次的得分是这次拿的数字中的最小值,我们俩每次拿数都要让自己的得分与对方的得分差值最大化,我俩试着拿一拿看看最后我比你高多少分吧~

Bob:我拒绝,这明明O(瞬间)就知道答案了为啥还要玩儿

Alice:哇你好厉害,那我写n个数你说按刚才的策略,我先拿,最后比你高多少分,你要是答对了我就嘻嘻嘻

Bob:好,你等着,嘿嘿嘿

输入

第一行输入一个整数T表示用例组数,每组用例第一行输入一个整数n表示要拿的正整数个数,之后输入n个正整数ai

输出

每组用例输出一个整数占一行,表示两人按游戏策略拿完所有数字后Alice比Bob高多少分

数据范围

1<=T<=10,1<=n<=50000,1<=ai<=10^9

样例输入

1

3

1 3 1

样例输出

2

样例解释

Alice拿3,Bob拿1 1,最后两者得分差值是3-1=2

  测试输入关于“测试输入”的帮助 期待的输出关于“期待的输出”的帮助 时间限制关于“时间限制”的帮助 内存限制关于“内存限制”的帮助 额外进程关于“{$a} 个额外进程”的帮助
测试用例 1 以文本方式显示
  1. 1↵
  2. 3↵
  3. 1 3 1↵
以文本方式显示
  1. 2↵
1秒 64M 0
解题思路:
       一道动规题~需要理解,每次我们就把自己当做要赢的那个人,所以每次拿当前的都要想办法使得差距尽可能大!注意是大~所以即使当前差值为负数,我们仍要使得拿完之后这个数更大,其实可以理解为,先手尽可能把差距拉大,后手想办法缩小差距~


结果:


P.S. 动态规划就是有点难,要好好学习一下!哈哈哈在听偶像剧主题曲~






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值