zoukankan      html  css  js  c++  java
  • nyoj 712 探 寻 宝 藏

    时间限制:1000 ms  |  内存限制:65535 KB

    难度:5

    描述

    传说HMH大沙漠中有一个M*N迷宫,里面藏有许多宝物。某天,Dr.Kong找到了迷宫的地图,他发现迷宫内处处有宝物,最珍贵的宝物就藏在右下角,迷宫的进出口在左上角。当然,迷宫中的通路不是平坦的,到处都是陷阱。Dr.Kong决定让他的机器人卡多去探险。

    但机器人卡多从左上角走到右下角时,只会向下走或者向右走。从右下角往回走到左上角时,只会向上走或者向左走,而且卡多不走回头路。(即:一个点最多经过一次)。当然卡多顺手也拿走沿路的每个宝物。

    Dr.Kong希望他的机器人卡多尽量多地带出宝物。请你编写程序,帮助Dr.Kong计算一下,卡多最多能带出多少宝物。

    输入

    第一行: K 表示有多少组测试数据。 
    接下来对每组测试数据:
    1行: M N
    2~M+1行: Ai1 Ai2 ……AiN (i=1,…..,m)


    【约束条件】
    2≤k≤5 1≤M, N≤50 0≤Aij≤100 (i=1,….,M; j=1,…,N)
    所有数据都是整数。 数据之间有一个空格。

    输出

    对于每组测试数据,输出一行:机器人卡多携带出最多价值的宝物数

    样例输入

    2

    2 3

    0 10 10

    10 10 80

    3 3

    0 3 9

    2 8 5

    5 7 100

    样例输出

    120

    134

    #include<stdio.h>
    #include<string.h>
    int maxx(int a,int b)
    {
    	return a>b?a:b;
    }
    int max(int a,int b,int c,int d)
    {
    	return maxx(maxx(a,b),maxx(c,d));
    }
    int map[55][55];
    int dp[110][55][55];
    int main()
    {
    	int N;
    	scanf("%d",&N);
    	while(N--)
    	{
    		memset(map,0,sizeof(map));
    		memset(dp,0,sizeof(dp));
    		int m,n;
    		scanf("%d%d",&m,&n);
    		int i,j,k;
    		for(i=1;i<=m;i++)
    			for(j=1;j<=n;j++)
    				scanf("%d",&map[i][j]);
    		for(k=1;k<m+n-2;k++)
    			for(i=1;i<=m&&i<=k+2;i++)
    				for(j=i+1;j<=m&&j<=k+2;j++)
    					dp[k][i][j]=max(dp[k-1][i][j],dp[k-1][i-1][j],dp[k-1][i][j-1],dp[k-1][i-1][j-1])+map[i][k+2-i]+map[j][k+2-j];					
    		dp[m+n-2][m][m]=maxx(dp[m+n-2-1][m-1][m],dp[m+n-2-1][m][m-1])+map[1][1]+map[m][n];
    		printf("%d
    ",dp[m+n-2][m][m]);
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    Codeforces 1265A Beautiful String
    1039 Course List for Student (25)
    1038 Recover the Smallest Number (30)
    1037 Magic Coupon (25)
    1024 Palindromic Number (25)
    1051 Pop Sequence (25)
    1019 General Palindromic Number (20)
    1031 Hello World for U (20)
    1012 The Best Rank (25)
    1011 World Cup Betting (20)
  • 原文地址:https://www.cnblogs.com/zhangliu/p/7053312.html
Copyright © 2011-2022 走看看