hdu 2571 动态规划

简单的动态规划

#include<cstdio>
#include<cstring>
#define Max(a,b) (a>b?a:b)
int dp[21][1001];
int map[21][1001];
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int m,n;
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
            {
                scanf("%d",&map[i][j]);
                dp[i][j]=-101;
            }
        dp[1][1]=map[1][1];
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
            {
                if(i==1&&j==1) continue;
                else if(i==1&&j>1)
                {
                    dp[i][j]=dp[i][j-1];
                    for(int k=1;k<=m;k++)
                        if(j%k==0)
                            dp[i][j]=Max(dp[i][k],dp[i][j]);
                    dp[i][j]+=map[i][j];
                }
                else if(i>1&&j==1)
                    dp[i][j]=dp[i-1][j]+map[i][j];
                else
                {
                    dp[i][j]=Max(dp[i-1][j],Max(dp[i][j],dp[i][j-1]));
                     for(int k=1;k<=m;k++)
                        if(j%k==0)
                            dp[i][j]=Max(dp[i][k],dp[i][j]);
                    dp[i][j]+=map[i][j];
                }
            }
        printf("%d\n",dp[n][m]);
    }
}
时间: 2024-12-15 09:29:28

hdu 2571 动态规划的相关文章

HDU 2571 命运 (DP)

命运 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 2571 Description 穿过幽谷意味着离大魔王lemon已经无限接近了! 可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机关.要知道,不论何人,若在迷宫中被困1小时以上,则必死无疑! 可怜的yifenfei为了去

FatMouse&#39;s Speed hdu 1160(动态规划,最长上升子序列+记录路径)

http://acm.hdu.edu.cn/showproblem.php?pid=1160 题意:现给出老鼠的体重与速度,要求你找出符合要求的最长子序列.       要求是 W[m[1]] < W[m[2]] < ... < W[m[n]](体重) && S[m[1]] > S[m[2]] > ... > S[m[n]] (速度) 分析:有两个变量的话比较不好控制,自然需要先排序.再仔细思考的话,觉得和之前做的防御导弹有点类似,都是求最多能有几个符合

HDU 2571 命运 (动规)

命运 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9334    Accepted Submission(s): 3289 Problem Description 穿过幽谷意味着离大魔王lemon已经无限接近了! 可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机关.要知

hdu 2571

命运 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 9205    Accepted Submission(s): 3250 Problem Description 穿过幽谷意味着离大魔王lemon已经无限接近了!可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机关.要知道,

hdu 2571 G++

# include <stdio.h> int a[25][1010], vis[25][1010] ; int n, m, INF = 0x0f0f0f0f ; int max(int a, int b){return a>b?a:b;} int dfs(int x, int y) { int i, rtn = -INF ; if (x == n && y == m) return a[x][y] ; if (vis[x][y] != INF) return vis[x

hdu 2571 命运(递推,请小心)

题目 //不能广搜,会超内存//可以用dp思想模拟//map 后来保存的是 保存由前面推来的最大的幸运总值的点//下标从1开始,不然倍数会有问题 //AC 代码: AC代码 //不能广搜,会超内存 //可以用dp思想模拟 //map 后来保存的是 保存由前面推来的最大的幸运总值的点 //下标从1开始,不然倍数会有问题 //又错了那么多次... //重写... //求过!!! #include<stdio.h> #include<string.h> #include<algor

命运(HDU 2571 简单动态规划)

命运 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 14555    Accepted Submission(s): 5119 Problem Description 穿过幽谷意味着离大魔王lemon已经无限接近了!可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机关.要知道

HDU 2571 命运 简单的DP

题目链接  ~~   http://acm.hdu.edu.cn/showproblem.php?pid=2571 题意很简单,就是求左上角到右下角的最大值. 刚开始忘了初始化..WA好几回.. 代码:: 1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 #define max(a,b) (a>b?a:b) 5 int main() 6 { 7 int map[25][1005]; 8 int

HDU 2571 命运

命运 Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HDU. Original ID: 257164-bit integer IO format: %I64d      Java class name: Main 穿过幽谷意味着离大魔王lemon已经无限接近了!可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机关.要知道,不论何人,若在迷