zoukankan      html  css  js  c++  java
  • hdu1978

    很水的题目

    路径的最优子结构,仅当代价满足时

    dp[i][j] += dp[k][l] (k<=i&&l<=j)

    这题剪枝可以省600ms,不剪枝基本压着1s过,数据还是可以的

    以后要注意适当优化了

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <string>
    #include <algorithm>
    #include <stack>
    #include <queue>
    
    const int inf = (1<<31)-1;
    const int MAXN = 1e2+10;
    const int MOD = 1e4;
    using namespace std;
    
    int a[MAXN][MAXN];
    int dp[MAXN][MAXN];
    
    int main()
    {
        int t;
        scanf("%d",&t);
        while(t--){
            int n,m;
            scanf("%d%d",&n,&m);
            for(int i=1;i<=n;i++){
                for(int j=1;j<=m;j++)
                    scanf("%d",&a[i][j]);
            }
            memset(dp,0,sizeof(dp));
            dp[1][1] = 1;
           // int cost;
    
            for(int i=1;i<=n;i++){
                for(int j=1;j<=m;j++){
                    for(int k=i;k-i<=a[i][j]&&k<=n;k++){
                        for(int l=j;k-i+l-j<=a[i][j]&&l<=m;l++){ //剪枝优化
                            if(i==k&&j==l)continue;
                            dp[k][l] = (dp[k][l]+dp[i][j])%MOD;
                        }
                    }
                }
            }
    
           /* for(int i=1;i<=n;i++){
                for(int j=1;j<=m;j++){
                    for(int k=1;k<=i;k++){
                        for(int l=1;l<=j;l++){
                            if(i==j&&k==l)continue;
                            if(a[k][l]>=i+j-k-l){
                                dp[i][j] = (dp[i][j]+dp[k][l])%MOD;
                            }
                        }
                    }
                }
            }*/
    
            cout<<dp[n][m]<<endl;
        }
    
        return 0;
    }
    View Code
    在一个谎言的国度,沉默就是英雄
  • 相关阅读:
    进程和线程
    堡垒机初识--paramiko模块
    python三元运算
    python 遍历文件夹
    CentOs7安装rabbitmq
    logstash 中配置GeoIP解析地理信息
    Centos7单机部署ELK
    Nginx修改access.log日志时间格式
    nginx日志增加cookie信息
    socketserver多线程处理
  • 原文地址:https://www.cnblogs.com/EdsonLin/p/5393798.html
Copyright © 2011-2022 走看看