zoukankan      html  css  js  c++  java
  • POJ 1678 I Love this Game!#dp博弈

    http://poj.org/problem?id=1678

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    
    const int INF=10e8;
    int n,a,b,p[10005],dp[10005];
    
    int dfs(int x)
    {
        if(dp[x]!=-INF)
            return dp[x];
    
        int ans=INF;
        for(int i=x+1;i<n;i++)
            if(p[i]-p[x]>=a&&p[i]-p[x]<=b)//对方要尽量取差值大的,那么要得到差值尽可能小的
                ans=min(ans,p[x]-dfs(i)); //== ans=max(ans,dfs(i)); ans=p[x]-ans;
        if(ans==INF)
            return dp[x]=p[x];
        return dp[x]=ans;
    }
    
    int op()
    {
        int ans=-INF;
        for(int i=0;i<n;i++)
            if(p[i]>=a&&p[i]<=b)
                ans=max(ans,dfs(i));
        return ans==-INF?0:ans;
    }
    
    int main()
    {
        int t;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d%d%d",&n,&a,&b);
            for(int i=0;i<n;i++)
            {
                scanf("%d",&p[i]);
                dp[i]=-INF;
            }
            sort(p,p+n);
            printf("%d
    ",op());
        }
        return 0;
    }
  • 相关阅读:
    gradle项目与maven项目互转
    GET和POST两种基本请求方法的区别
    gradle项目打war和jar包
    maven项目打war和jar
    winsw打包jar
    前端
    CentOS
    Vue
    Spring
    Vue
  • 原文地址:https://www.cnblogs.com/atmacmer/p/5249235.html
Copyright © 2011-2022 走看看