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

BZOJ 1413 取石子游戏(DP)

时间:2014-06-23 06:24:56      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   http   tar   com   

题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1413

题意:n堆石子排成一排。每次只能在两侧的两堆中选择一堆拿。至少拿一个。谁不能操作谁输。

思路:参考这里

 

int f1[N][N],f2[N][N],n,a[N];


void deal()
{
    RD(n);
    int i,j,k;
    FOR1(i,n) RD(a[i]),f1[i][i]=f2[i][i]=a[i];
    int p,q,x;
    for(k=2;k<=n;k++) for(i=1;i+k-1<=n;i++)
    {
        j=i+k-1;
        
        p=f1[i][j-1]; q=f2[i][j-1]; x=a[j];
        if(x==q) f1[i][j]=0;
        else if(x<p&&x<q||x>p&&x>q) f1[i][j]=x;
        else if(p<q) f1[i][j]=x+1;
        else f1[i][j]=x-1;
        
        p=f2[i+1][j]; q=f1[i+1][j]; x=a[i];
        if(x==q) f2[i][j]=0;
        else if(x<p&&x<q||x>p&&x>q) f2[i][j]=x;
        else if(p<q) f2[i][j]=x+1;
        else f2[i][j]=x-1;
    }
    if(n==1) puts("1");
    else PR(f2[1][n-1]!=a[n]);
}


int main()
{
    rush() deal();
}

 

 

 

BZOJ 1413 取石子游戏(DP),布布扣,bubuko.com

BZOJ 1413 取石子游戏(DP)

标签:style   class   blog   http   tar   com   

原文地址:http://www.cnblogs.com/jianglangcaijin/p/3799708.html

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