HDU 1081 To The Max DP
来源:互联网 发布:阿里云服务器域名 编辑:程序博客网 时间:2024/06/05 16:19
题意:给你一个矩阵,求最大子矩阵的和。
思路:首先a[i][j] 表示第i 行的前缀和。枚举i,j 列,dp[i][j][k] 代表从i 列到j 列,前k 行所能形成的最大子矩阵。
DP方程:dp[i][j][k]=max(dp[i][j][k]+a[k][j]−a[k][i−1],a[k][j]−a[k][i−1])
http://acm.hdu.edu.cn/showproblem.php?pid=1081
/********************************************* Problem : HDU 1081 Author : NMfloat InkTime (c) NM . All Rights Reserved .********************************************/#include <map>#include <set>#include <queue>#include <cmath>#include <ctime>#include <cstdio>#include <cstring>#include <cstdlib>#include <iostream>#include <algorithm>#define rep(i,a,b) for(int i = a ; i <= b ; i ++)#define rrep(i,a,b) for(int i = b ; i >= a ; i --)#define repE(p,u) for(Edge * p = G[u].first ; p ; p = p -> next)#define cls(a,x) memset(a,x,sizeof(a))#define eps 1e-8using namespace std;const int MOD = 1e9+7;const int INF = 0x3f3f3f3f;const int MAXN = 1e5;const int MAXE = 2e5;typedef long long LL;typedef unsigned long long ULL;int T,n,m,k;int a[105][105];int dp[105][105][105];void init() {}void input() { rep(i,1,n) rep(j,1,n) scanf("%d",&a[i][j]) , a[i][j] += a[i][j-1];//第i行,j的前缀和。}void solve() { int ans = -INF; //rep(i,0,n) rep(j,0,n) rep(k,0,n) dp[i][j][k] = -INF; rep(i,1,n) rep(j,i,n) rep(k,1,n){ //代表i列到第j列。以k行结尾的最大子矩阵值。 dp[i][j][k] = max(dp[i][j][k-1]+a[k][j]-a[k][i-1],a[k][j]-a[k][i-1]); ans = max(ans,dp[i][j][k]); } printf("%d\n",ans);}int main(void) { //freopen("a.in","r",stdin); //scanf("%d",&T); //while(T--) { init(); while(~scanf("%d",&n)) { input(); solve(); } return 0;}
0 0
- HDU 1081 To The Max 二维dp
- hdu 1081 To The Max 基础dp
- HDU 1081 To The Max ---二维dp
- Hdu 1081 To The Max -- DP
- HDU 1081 To The Max(DP)
- HDU 1081 To The Max(DP)
- HDU 1081 To The Max DP
- HDU 1081 To The Max--DP--(最大子矩阵)
- hdu 1081 To The Max(最大子矩阵和,dp)
- HDU 1081 To The Max(dp最大子矩阵和)
- HDU 1081 To The Max(dp最大子矩阵和)
- HDU To The Max 二维DP
- HDU 1081 To the Max
- HDU 1081 To The Max
- HDU 1081 To The Max
- hdu 1081 To The Max
- hdu 1081 to the max
- hdu 1081 To The Max
- ccf 201509-4 高速公路
- alsa-lib的unable to create IPC shm instance问题的解决
- java中Inputstream,outputstream(字节输入输出流)
- 有关于__align(n)
- 高精度算法(超出范围的数值的计算)
- HDU 1081 To The Max DP
- Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define 解决
- 07_Java 多线程编程
- 为Arch Linux安装VMWare-Tools
- 队列
- 1.操作系统基础概念
- iso/osi七层模型
- 5.5编写一个程序,把一个指定的值存储到一个整数中指定的几个位。它的原型如下
- 莫队算法笔记