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
一道动规题~需要理解,每次我们就把自己当做要赢的那个人,所以每次拿当前的都要想办法使得差距尽可能大!注意是大~所以即使当前差值为负数,我们仍要使得拿完之后这个数更大,其实可以理解为,先手尽可能把差距拉大,后手想办法缩小差距~
结果:
P.S. 动态规划就是有点难,要好好学习一下!哈哈哈在听偶像剧主题曲~