[DP] POJ1050
来源:互联网 发布:网络电视遥控器失灵 编辑:程序博客网 时间:2024/05/21 22:48
http://poj.org/problem?id=1050
找到n × n 数组里和最大的子长方形
将二维的数组转化为一维,再使用dp求最大子序列和
( ̄▽ ̄)感觉最开始就想错了hhhh
不应该一个一个子长方形列举再优化
而是整行或多行的操作
百度的码都看不懂hhhhh
还是cy写的好哇233
#include <cstring>#include <iostream>using namespace std;int a[ 101 ][ 101 ];int dp ( int tmp[], int n ) { int max = 0; int s = 0; for ( int i = 1; i <= n; i++ ) { s = ( s > 0 ) ? ( s + tmp[ i ] ) : tmp[ i ]; if ( max < s ) max = s; } return max;}int Max ( int n ) { int sum = -128; for ( int i = 1; i <= n; i++ ) { //从第i行开始取起 int tmp[ 101 ]; memset ( tmp, 0, sizeof ( tmp ) ); for ( int j = i; j <= n; j++ ) { //取到第j行 for ( int k = 1; k <= n; k++ ) { //将i--j行的所有第k列相加 变为一维的情况 tmp[ k ] += a[ j ][ k ]; } int s = dp ( tmp, n ); //调用一维“最大子序列和”的算法 if ( sum < s ) sum = s; } } return sum;}int main () { int n; while ( cin >> n ) { for ( int i = 1; i <= n; i++ ) for ( int j = 1; j <= n; j++ ) cin >> a[ i ][ j ]; cout << Max ( n ) << endl; } return 0;}
阅读全文
0 0
- POJ1050 DP
- POJ1050【DP】
- [DP] POJ1050
- POJ1050 dp入门
- poj1050(DP)
- DP::Poj1050 To the max
- poj1050 To the Max (dp)
- POJ1050 TO THE MAX [DP]
- poj1050(dp最大子矩阵)
- poj1050 to the max (DP)
- poj1050(压缩矩阵)(dp)
- poj1050 To the Max dp
- poj1050 To the Max dp
- POJ1050
- poj1050
- POJ1050
- poj1050
- poj1050
- maven项目文件存在却找不到class
- TCP断点续传
- dom4j读取一个xml文件,以原格式输出
- spring-boot入门Demo
- javascript判断元素存在和判断元素存在于实时的dom中的方法
- [DP] POJ1050
- 关于vue 框架与后台框架的混合使用的尝试
- ios 多线程间通信
- 字符串split切割"."
- python实现求解列表中元素的排列和组合问题
- 2017多校联合第四场1011/hdu6181(次短路)
- 简单讲解SQL的注入以及防御
- php小tips
- 网站 博客