码迷,mamicode.com
首页 > 其他好文 > 详细

[CODEVS3323]时空跳跃者的封锁

时间:2015-09-29 07:38:38      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:

不错的基础dp

首先建立两个三维数组,一个记录map[i][j][k]=sum为坐标(i,j,k)的点权值为sum,

另一个数组初值为0,dp转移方程:f[i][j][k]:=max(f[i-1][j][k],f[i][j-1][k],f[i][j][k-1]);

代码

var
        f,map:array[0..101,0..101,0..101] of longint;
        i,j,k,l,m,n,x,y,z,sum:longint;

        function max(a,b,c:longint):longint;
        begin max:=-maxlongint;
        if a>max then max:=a;
        if b>max then max:=b;
        if c>max then max:=c;
        end;

        begin
                readln(x,y,z);
                readln(m);
                for i:=1 to m do readln(j,k,l,map[j][k][l]);
                for i:=1 to x do
                for j:=1 to y do
                for k:=1 to z do
                f[i][j][k]:=max(f[i-1][j][k],f[i][j-1][k],f[i][j][k-1])+map[i][j][k];
                readln(sum);
                if f[x][y][z]>=sum then writeln(f[x][y][z]) else writeln(BigBang!);
        end.

 

 喜欢就收藏一下,vic私人qq:1064864324,加我一起讨论问题,一起进步^-^

[CODEVS3323]时空跳跃者的封锁

标签:

原文地址:http://www.cnblogs.com/victorslave/p/4845422.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!