zoukankan      html  css  js  c++  java
  • 【出错记录】关于DP中数组维度顺序

    #include <cstdio>
    #include <algorithm>
    
    const int MAXN = 37;
    
    int n, m, dp[MAXN][MAXN];
    
    int main() {
    	scanf("%d%d", &n, &m);
    	
    	dp[1][0] = 1;                        // 错误代码
    	for (int i = 1; i <= n; i++) {      
    		for (int j = 1; j <= m; j++) {
    			dp[i][j] = dp[i == 1 ? n : i - 1][j - 1] + dp[i == n ? 1 : i + 1][j - 1];
    		}
    	}
    
    	printf("%d
    ", dp[1][m]);
    
    //	dp[0][1] = 1;                        正解
    //	for (int i = 1; i <= m; i++)
    //		for (int j = 1; j <= n; j++) 
    //			dp[i][j] =  dp[i - 1][j == 1 ? n : j - 1] + dp[i -1][j == n ? 1 : j + 1];
    //	
    //	printf("%d
    ", dp[m][1]);
    	return 0;
    }
    

      DP入门。

    如果按照第一种,dp [ 球在谁手里 ] [ 第几轮], 那么就直接一个人过了全部轮数,可想而知,肯定有些状态是转移不到的。

    第二种将每一轮里每个人的状态都转移到了。

  • 相关阅读:
    【新闻发布系统】登录和注销的实现
    【新闻发布系统】项目文档
    JSP九大内置对象
    JDBC数据库连接技术
    使用SQLyog连接MySQL数据库
    MySql--学习成长过程
    MYSQL--学习记录
    MYSQL
    GIT的使用方法
    java 表单验证
  • 原文地址:https://www.cnblogs.com/ExileValley/p/8443052.html
Copyright © 2011-2022 走看看