栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 2738 Two Ends

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 2738 Two Ends

#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;int d[1001][1001],num[1001];int bfs(int x,int y){    if(d[x][y]!=-1) return d[x][y];    if(y-x==1) return d[x][y]=abs(num[x]-num[y]);    int t,tt;    if(num[x+1]>=num[y])        t=bfs(x+2,y)+num[x]-num[x+1];    else        t=bfs(x+1,y-1)+num[x]-num[y];    if(num[x]>=num[y-1])        tt=bfs(x+1,y-1)+num[y]-num[x];    else        tt=bfs(x,y-2)+num[y]-num[y-1];    d[x][y]=max(t,tt);    return d[x][y];}int main(){    int n,cas=1;    while(scanf("%d",&n)!=EOF)    {        if(n==0) break;        memset(d,-1,sizeof(d));        for(int i=1; i<=n; i++)        { scanf("%d",&num[i]);        }        int t=bfs(1,n);        printf("In game %d, the greedy strategy might lose by as many as %d points.n",cas++,t);    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/369873.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号