| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 729 人关注过本帖
标题:算法来了(讨论推动算法)
只看楼主 加入收藏
lnhaing
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2008-1-30
收藏
 问题点数:0 回复次数:6 
算法来了(讨论推动算法)
Program国度的人,喜欢玩这样一个游戏,在一块板上写着一行数,共n个。两个游戏者,轮流从最右或最左取一个数。刚开始,每个游戏者

的得分均为零。如果一个游戏者取下一个数,则将该数的值加到该游戏者的得分上,最后谁的得分最高谁就赢了游戏。给出这n个数( 从左往

右), 假设游戏者都是非常聪明的,问最后两个人的得分(假设第一个人首先取数).
【样例输入】
6
4 7 2 9 5 2
【样例输出】
18 11
【玩家1如果取1,玩家2就就可以取左边第一个7或右边2,然后玩家1两边也可以,依次类推】
先输出玩家1分数,空格打开,再输出玩家2

(好久没来论坛了,先放个题目!其实是别人叫我帮忙的题目,大家可能做过!水平有限,自己想了很久,但感觉算法还是有点烦!希望大家多讨论,让偶多学习!谢谢!)
搜索更多相关主题的帖子: 算法 
2008-06-03 18:55
闪闪4521
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-11-30
收藏
得分:0 
用动态规划吧..
2008-06-03 19:11
Loli
Rank: 1
来 自:飞燕算法群46520219
等 级:新手上路
帖 子:348
专家分:0
注 册:2008-5-27
收藏
得分:0 
三次方DP


" border="0" />[color=white]
2008-06-03 19:11
lnhaing
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2008-1-30
收藏
得分:0 
燕子,来个程序吧?好久没学习你的算法了
学习学习!

我来自偶然! bitter C
2008-06-03 19:16
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
也许这样可以
程序代码:
#include <iostream>
using namespace std;

inline int Max(int a,int b)
{
    return a>b?a:b;
}    

int a[1001];
int _sum[1001];
int dp[1001][1001];

inline int sum(int i,int j)
{
    return _sum[j]-_sum[i-1];    
}    

int main()
{
    int n;
    while(scanf("%d",&n)!=EOF){
        _sum[0]=0;
        for(int i=1;i<=n;i++){
            scanf("%d",&a[i]);
            _sum[i]=_sum[i-1]+a[i];
        }
        for(int i=n;i>=0;i--){
            dp[i][i]=a[i];
            for(int j=i+1;j<=n;j++){
                dp[i][j]=Max(a[i]+sum(i+1,j)-dp[i+1][j],a[j]+sum(i,j-1)-dp[i][j-1]);
            }
        }
        printf("%d %d\n",dp[1][n],sum(1,n)-dp[1][n]);
    }    
}   
2008-06-03 21:41
Loli
Rank: 1
来 自:飞燕算法群46520219
等 级:新手上路
帖 子:348
专家分:0
注 册:2008-5-27
收藏
得分:0 
转移费用是1,所是是二次。。。又想当然了。。。



" border="0" />[color=white]
2008-06-03 21:52
lnhaing
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2008-1-30
收藏
得分:0 
谢谢!LEECO!
------------------
dp[i][i+1] = a[i]与a[i+1]的大者
dp[m][n] = (a[m]+.....+a[n]-dp[m+1][n] 与 a[m]+.....+a[n]-dp[m][n-1]之间的大者)

但看不出来有没有考虑全面了?

我来自偶然! bitter C
2008-06-04 08:48
快速回复:算法来了(讨论推动算法)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011669 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved