zoukankan      html  css  js  c++  java
  • 假期训练七(hdu-2845 dp,hdu-1846,2188 巴什博奕)

    题目一:传送门

    思路:动态规划,从每一行来看,每次更新求出这一点的最大值,dp[i]=MAX(dp[i-1],dp[i]+dp[i-2]),不会出现

    两个数字相邻的情况;先对行进行更新,再对列进行更新。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    const int maxn = 2001;
    int a[maxn],dp[maxn];
    int MAX(int x,int y)
    {
        return x>y?x:y;
    }
    int main(void)
    {
        int n,m,i,j;
        while(~scanf("%d%d",&n,&m))
        {
            for(i=1;i<=n;i++)
            {
                for(j=1;j<=m;j++) scanf("%d",&a[j]);
                for(j=2;j<=m;j++) a[j]=MAX(a[j]+a[j-2],a[j-1]);
                dp[i]=a[m];
            }
            for(i=2;i<=n;i++) dp[i]=MAX(dp[i]+dp[i-2],dp[i-1]);
            printf("%d
    ",dp[n]);
        }
        return 0;
    }
    View Code

    题目二、三:

    思路:

    巴什博奕

    (1)两个人取石子,总共有n个石子,每个人一次最多取m个。

    (2)先取完石子的人获胜。

    判断n%(m+1)==0,如果成立,后手胜利;否则先手胜利。

    扩展:取光者输,调整策略,变为(n-1)%(m+1)==0,后手胜利;否则,先手胜利。

  • 相关阅读:
    css3样式二
    CSS3样式
    css基础样式四
    css样式基础三
    CSS样式基础二
    Css样式基础
    html(二)
    html(一)
    Linux 下 Memcached 缓存服务器安装配置
    java.lang.OutOfMemoryError: Java heap space解决方法
  • 原文地址:https://www.cnblogs.com/2018zxy/p/10263062.html
Copyright © 2011-2022 走看看