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

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. 自定义view实现水波纹效果

    水波纹效果: 1.标准正余弦水波纹: 2.非标准圆形液柱水波纹: 虽说都是水波纹,但两者在实现上差异是比较大的,一个通过正余弦函数模拟水波纹效果,另外一个会运用到图像的混合模式(PorterDuffX ...

  2. Rap 安装和配置

    本机环境 系统:CentOS 6.7 64 位 MySQL 5.6 JDK 1.8 Tomcat 8 Redis 3.0.7 Rap 0.14.1 Rap 说明 官网:https://github.c ...

  3. SpringMVC详细示例实战

    一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 1 2 3 4 5 6 ...

  4. oracle插入数据

    插入数据 insert into comm_error_code_def (ID, ERR_MESSAGE, ERR_CODE, ERR_DESC, NAME, MISC_DESC, STATUS, ...

  5. 使用ASP.NET 5开发AngularJS应用

    今天推荐的是一个系列文章,讲述了如何使用ASP.NET 5来开发AngularJS应用,一共7篇文章. 在Visual Studio 2015中由于优化了项目结构,优化了前端JS框架的引用方式,所以开 ...

  6. ML 02、监督学习

    机器学习算法原理.实现与实践——监督学习 机器学习包括监督学习.非监督学习.半监督学习及强化学习,这里先讨论监督学习. 监督学习的任务是学习一个模型,使模型能够对任意给定的输入,对其相应的输出做出一个 ...

  7. c# 作业2

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  8. zookeeper理论

    第一章 Zookeeper server 1.1  Zookeeper基本原理 1.1.1    Zookeeper的保证 l         顺序性,client的updates请求都会根据它发出的 ...

  9. node.js打开浏览器

    通过nodejs的child_process识别环境, 用不同的CLI打开默认浏览器: var child_process = require("child_process"); ...

  10. Xamarin Visual Studio提示找不到AssemblyAttributes.cs文件

    Xamarin Visual  Studio提示找不到AssemblyAttributes.cs文件   错误信息:Could not find file ‘C:\Users\[用户名]\AppDat ...