杭电5623KK's Number

KK's Number

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 267    Accepted Submission(s): 149


Problem Description
Our lovely KK has a funny mathematical game:This game requires two people,There are  N(1N5104)  numbers,every time KK will take the numbers,first.Every time you can take any number of the numbers.Until the  N  number is taken.The minimum number of numbers is the score for each time.KK and the opponent's strategy is as much as possible to make their score minus the opponent's score more.In this case,How much is the final KK score minus the opponent's score?
 

Input
The first line of the input file contains an integer  T(1T10) , which indicates the number of test cases.
For each test case, there are two lines,in the first line is a integer  N(1N5104) ,the other line has  N  positive integers(no more than  109 ).
 

Output
For each test case, there are one lines,includes a integer,indicating the final KK's score minus the opponent's score.
 

Sample Input
  
  
1 3 1 3 1
 

Sample Output
  
  
2
Hint
Firstly KK take 3;and the opponent take 1,1,so the result is 2.
 

Source
 

Recommend
hujie   |   We have carefully selected several similar problems for you:   5659  5658  5657  5656  5654 
我拉低了这道题的ac率,╰( ̄▽ ̄)╭:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int a[110000],i,j,k,l,m,n,dp[110000];
int main()
{
	int p;
	scanf("%d",&p);
	while(p--)
	{
		scanf("%d",&n);
		for(i=0;i<n;i++)
		scanf("%d",&a[i]);
		sort(a,a+n);
		dp[0]=a[0];
		for(i=1;i<n;i++)
		dp[i]=max(dp[i-1],a[i]-dp[i-1]);
		printf("%d\n",dp[n-1]);
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值