码迷,mamicode.com
首页 > 其他好文 > 详细

合并游戏

时间:2017-05-06 11:52:37      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:题目   space   ring   algorithm   name   ace   center   最大   color   

合并游戏

merge.cpp/c/pas

(1s/256M)

 

题目描述

       Cindy和Dan在玩一个游戏。

       一开始Cindy想出了N个数,接着她把这N个数全部给了Dan。

       Dan得到这组数后,它会挑出3个数(如果不足3个则全部挑出)。Dan会把这几个数加起来变成一个数,然后再把这个数与剩下的数再放到一起。Dan会一直这样做,直到最后只剩下一个数。

       Cindy则会在旁边记下每次Dan得到的数,她把这些数加起来,作为本次游戏的得分。她想知道,对于一组数,Dan能得到的最大的得分是多少?

 

输入格式

       第一行一个正整数N,代表这组数的个数;

       第二行N个正整数,代表这N个整数。

 

输出格式

       一行一个整数,代表可能的最大得分。

 

样例输入(merge.in)

       4

       3 1 5 6

 

样例输出(merge.out)

       29

 

样例解释

       Dan可以首先把(3,5,6)这三个数先合并起来,得到3 + 5 + 6 = 14; 接着他把剩下的两个数再合起来,得到1 + 14 = 15.这样,总得分是最大的 14 + 15 = 29.

 

数据范围与限制

       对于50%的数据,N<=10

       对于100%的数据,N<=1000,所有数不大于1000

~\(≧▽≦)/~啦啦啦思路:

要所求值最大,就先按降序排个序,然后一次加起来就是最大,如果是在两个或以下个数中选择就特判一下。

 

(v)~ 代码:

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 
 7 int n,a[1001],b[1001],ans,num,tot,q;
 8 
 9 int cmp(int a,int b){
10     return a>b;
11 }
12 
13 int main(){ 
14 
15     memset(a,-1,sizeof(a));
16     int head=1,tail=head+2;
17     cin>>n;
18     
19     for(int i=1;i<=n;i++){
20         cin>>a[i];
21     }sort(a+1,a+n+1,cmp);
22     
23     do{
24         for(int i=head;i<=tail;i++) {
25             num+=a[i];
26             a[i]=-1;
27         }a[tail]=num;
28         ans+=a[tail];
29         head+=tail-1;
30         tail=head+2;
31         for(int i=1;i<=n;i++)
32           if(a[i]!=-1) tot++;
33     } while(tot>=3);
34     
35     for(int i=1;i<=n;i++)
36         if(a[i]!=-1) tot++;
37         
38     if(tot<3){
39         for(int i=1;i<=n;i++)
40         if(a[i]!=-1)  q=i;
41         ans+=a[q]+a[q+1];
42     }
43     
44     cout<<ans<<endl;
45     return 0;
46 }

 

合并游戏

标签:题目   space   ring   algorithm   name   ace   center   最大   color   

原文地址:http://www.cnblogs.com/wsdestdq/p/6815894.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!