题意 给出一个数字组成的立方体 在其中选取一个体 使这个体中的数字之和最小 不可以不选

fzu的题目分类动态规划里面不是按难度排得 是按照题号..记得以前做题碰到过算 矩阵里面求子矩阵的最大和的 不会

然后这次看着这个三维的..内心是崩溃的

幸好看了一眼范围 亮点是1<=n<=20 那直接处理一下暴力就可以了...

我们可以用一个dp[i][k][j]来记录 从1.1.1到i.k.j 之间的体的和 然后我们可以进行枚举每个体 处理的时间复杂度可以忽略 实际枚举的复杂度是n^6

但是做题的时候没有想到如何记录体的和 最后枚举起来也比较麻烦 于是采用了dp[i][k][j]中 i仅仅起到记录维度的作用 后两个度记录的才是1.1-k.j的矩阵的和 即下面的代码 操作更为简单

做好枚举矩阵之后 枚举维度相加就可以 这样其实和枚举体的时间复杂度一样

如何做到枚举体呢?

在输入的预处理上做一下变动就好..即..

cin>>a[i][k][j];
dp[i][k][j]=dp[i][k-1][j]+dp[i][k][j-1]-dp[i][k-1][j-1]+a[i][k][j];
dp[i][k][j]+=dp[i-1][k][j];

(做题的时候真是傻)..

下面是仅仅使用dp记录单维度矩阵的代码

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<map>
#include<math.h>
#include<iostream>
using namespace std;
int n;
int a[25][25][25];
int dp[25][25][25]; /// wd x y
int ans;
int main(){
while(cin>>n)
{
if(n==0)
break;
ans=-999999999;
memset(dp,0,sizeof(dp));
/// 维度并不在dp中显示
/// k与j 表示的 x y 即从1.1-x.y 这个矩形的面积
for(int i=1;i<=n;i++) /// wd
{
for(int k=1;k<=n;k++) /// x
{
for(int j=1;j<=n;j++) /// y
{
cin>>a[i][k][j];
dp[i][k][j]=dp[i][k-1][j]+dp[i][k][j-1]-dp[i][k-1][j-1]+a[i][k][j];
}
}
}
/// o t s f v i
int res;
for(int o=1;o<=n;o++)
{
for(int t=o;t<=n;t++)
{
for(int s=1;s<=n;s++)
{
for(int f=s;f<=n;f++)
{
res=0;
/// 枚举每个二维矩阵
/// dp[t][f]+dp[t][f-1]+dp[t-1][f]-3*dp[o-1][s-1]
for(int v=1;v<=n;v++)
{
for(int i=v;i<=n;i++) /// 枚举维度
{
res=0;
for(int q=v;q<=i;q++)
{
res+=(dp[q][t][f]-dp[q][t][s-1]-dp[q][o-1][f]+dp[q][o-1][s-1]);
}
if(res>ans)
{
ans=res;
}
}
}
}
}
}
}
printf("%d\n",ans);
}
}

  

FZU 1018 枚举dp的更多相关文章

  1. Ural 1018 (树形DP+背包+优化)

    题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=17662 题目大意:树枝上间连接着一坨坨苹果(不要在意'坨'),给 ...

  2. Codeforces 550C —— Divisibility by Eight——————【枚举 || dp】

     Divisibility by Eight time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  3. POJ - 1080 枚举 / DP

    要求max{F/P},先枚举下界lowf,再贪心求符合约束条件的n个最小价值和 记录F的离散值和去重可以大幅度常数优化 (本来想着用DP做的) (辣鸡POJ连auto都Complie Error) # ...

  4. Codeforces Round #191 (Div. 2) A. Flipping Game【*枚举/DP/每次操作可将区间[i,j](1=<i<=j<=n)内牌的状态翻转(即0变1,1变0),求一次翻转操作后,1的个数尽量多】

    A. Flipping Game     time limit per test 1 second memory limit per test 256 megabytes input standard ...

  5. fzu 2204 7 dp

    题目链接: fzu 2204 7 题目描述: 给出n个小球,每个小球只能涂黑色或者是白色,七个连续的不能是同种颜色,问有多少种涂色方法? 解题思路: 刚开始没有考虑到是环形的,WA的风生水起,怪我咯! ...

  6. ural 1018(树形dp)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=17662 思路:典型的树形dp,处理的时候类似于分组背包,dp[i] ...

  7. FZU 2214 Knapsack dp (转化背包)

    就是一个背包裸题,由于物品的重量太大,开不了这么大的数组 所以转化一下,由于价值总和不大于5000,所以把价值看作重量,重量看作价值,那么就是同样的价值下,求一个最轻的重量 #include<c ...

  8. HDU-4681 String 枚举+DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4681 题意:给A,B,C三个串,求一个最长的串D,满足D是A和B的subsequence,C是D的su ...

  9. FZU 2157 树形DP

    最开始一直不理解题是什么意思 ╯▽╰ 题意:给出n个点,每个点都有两种花费,一个是0种花费,一个是1种花费,每两个点相连,边也有花费,是随着点所取话费的种类不同,边的花费也不同,边有四种花费,00,0 ...

随机推荐

  1. July 27th, Week 31st Wednesday, 2016

    Don't let yesterday take up too much of today. 别让昨天的事情占据今天太多时间. Learn from yesterday, but don't let ...

  2. fedora yum 使用代理的方法

    配置yum: 编辑/etc/yum.conf添加下列一行: proxy=http://domain/user:passwd@<proxy ip>:80 <proxy ip>:代 ...

  3. 查看MySQL配置文件路径及相关配置

    [root@DB ~]# /usr/local/mysql/bin/mysqld --verbose --help |grep -A 1 'Default options' Default optio ...

  4. 同网段下,windows自带远程桌面连接

    1.服务器关闭防火墙 2.右键点击’我的电脑‘进入’属性‘点击左侧菜单栏中的’远程设置‘: 把远程桌面选项设置成’允许运行任意版本远程桌面的计算机连接‘. 3.客户端点击“开始”在附件菜单下面找到“远 ...

  5. WordPress主题制作函数

    WordPress基本模板文件 一套完整的WordPress模板应至少具有如下文件: style.css: CSS(样式表)文件 index.php: 主页模板 archive.php: Archiv ...

  6. poj 2635 千进制

    转自:http://www.cnblogs.com/kuangbin/archive/2012/04/01/2429463.html 大致题意: 给定一个大数K,K是两个大素数的乘积的值. 再给定一个 ...

  7. SAE上传web应用(包括使用数据库)教程详解及问题解惑

    转自:http://blog.csdn.net/baiyuliang2013/article/details/24725995 SAE上传web应用(包括使用数据库)教程详解及问题解惑: 最近由于工作 ...

  8. loj 1150(spfa预处理+二分+最大匹配)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26864 思路:首先是spfa预处理出每个'G'到'H'的最短距离, ...

  9. 小甲鱼PE详解之输入表(导出表)详解(PE详解09)

    小甲鱼PE详解之输出表(导出表)详解(PE详解09) 当PE 文件被执行的时候,Windows 加载器将文件装入内存并将导入表(Export Table) 登记的动态链接库(一般是DLL 格式)文件一 ...

  10. Ubuntu安装sciki-learn及环境

    http://scikit-learn.org/stable/install.html 安装python-dev 安装这个包,以后安装各种python扩展包,可以省很多事情. sudo apt-get ...