wiki1169-传纸条(dp)
http://wikioi.com/problem/1169/
四维数组和三维数组;
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<bitset>
#include<iomanip> using namespace std;
int num[ 55 ][ 55 ] ;
int dp[ 55 ][ 55 ][ 55 ][ 55 ] ; int main()
{
int n , m ;
while( scanf( "%d%d" , &n , &m ) != EOF )
{
memset( dp , 0 , sizeof( dp ) ) ;
for( int i = 1 ; i <= n ; ++i )
for( int j = 1 ; j <= m ; ++j )
scanf( "%d" , &num[ i ][ j ] ) ;
for( int i1 = 1 ; i1 <= n ; ++i1 )
for( int j1 = 1 ; j1 <= m ; ++j1 )
for( int i2 = 1 ; i2 <= n ; ++i2 )
for( int j2 = 1 ; j2 <= m ; ++j2 )
{
int temp = max( max( dp[ i1 - 1 ][ j1 ][ i2 -1 ][ j2 ] , dp[ i1 - 1][ j1 ][ i2 ][ j2 - 1] ) , max( dp[ i1 ][ j1 -1 ][ i2 -1 ][ j2 ] , dp[ i1 ][ j1 - 1 ][ i2 ][ j2 - 1 ])) ;
if( i1 == i2 && j1 == j2 )
dp[ i1 ][ j1 ][ i2 ][ j2 ] = num[ i1 ][ j1 ] + temp ;
else
dp[ i1 ][ j1 ][ i2 ][ j2 ] = num[ i1 ][ j1 ] + num[ i2 ][ j2 ] + temp ;
}
printf( "%d\n" , dp[ n ][ m ][ n ][ m ] ) ;
}
return 0 ;
}
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<bitset>
#include<iomanip> using namespace std; int m , n , mapp[ 51 ][ 51 ] , f[ 101 ][ 51 ][ 51 ] ; void dp()
{
int i , j , k , s , t , Max = 0 ;
for( i = 1 ; i <= m + n - 1 ; ++i )
{
t = ( i > m ) ? m : i ;
s = ( i > n ) ? n : i ;
for( j = i - s + 1 ; j <= t ; ++j )
{
for( k = i - s + 1 ; k <= t ; ++k )
if( j != k || i == m + n - 1 )
{
Max = 0 ;
if( Max < f[ i - 1 ][ j ][ k ] )
Max = f[ i - 1 ][ j ][ k ] ;
if( Max < f[ i - 1 ][ j - 1 ][ k ] )
Max = f[ i - 1 ][ j - 1 ][ k ] ;
if( Max < f[ i - 1 ][ j - 1 ][ k - 1 ] )
Max = f[ i - 1 ][ j - 1 ][ k - 1 ] ;
if( Max < f[ i - 1 ][ j ][ k - 1 ] )
Max = f[ i - 1 ][ j ][ k - 1] ;
f[ i ][ j ][ k ] = Max + mapp[ j ][ i - j + 1 ] + mapp[ k ][ i - k + 1 ] ;
}
} }
}
int main()
{
while( cin >> m >> n )
{
int i , j ;
for( i = 1 ; i <= m ; ++i )
for( j = 1 ; j <= n ; ++j )
cin >> mapp[ i ][ j ] ;
dp() ;
cout << f[ m + n - 1 ][ m ][ m ] << endl ;
}
return 0 ;
}
wiki1169-传纸条(dp)的更多相关文章
- NOIP2008传纸条[DP]
题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的是 ...
- CodeVS1169 传纸条 [DP补完计划]
题目传送门 题目描述 Description 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端, ...
- P1011 传纸条//dp优化改进状态表示
P1011 传纸条 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2008复赛提高组第三题 描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不 ...
- P1006 传纸条 /// DP+滚动数组
题目大意: https://www.luogu.org/problemnew/show/P1006 题解 不难想到 求从起点到终点的两条不同的路 因为只能向右或向下走 所以纸条1和2不可能同时位于同一 ...
- tyvj1011 - 传纸条 ——DP
题目链接:https://www.tyvj.cn/Problem_Show.aspx?id=1011 状态转移方程: f[k,x1,x2] = max(f[k-1,x1,x2],f[k-1,x1-1, ...
- TYVJ 1011 NOIP 2008&&NOIP 2000 传纸条&&方格取数 Label:多线程dp
做题记录:2016-08-15 15:47:07 背景 NOIP2008复赛提高组第三题 描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行 ...
- 传纸条(一)(双线程dp)
传纸条(一) 时间限制:2000 ms | 内存限制:65535 KB 难度:5 描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行 ...
- nyoj61 传纸条(一) dp
思路:两人一个从左上角出发只能向右和向下,另一人从右下角出发只能向左和向上,可以看做两人都是从右下角出发,且只能向左和向上传纸条,并且两条路径不会相交,因为一个人只会传一次,那么随便画一个图就能知道两 ...
- P1006 传纸条 (方格取数dp)
题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个mm行nn列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运 ...
- 传纸条---(dp)
题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个mmm行nnn列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了. ...
随机推荐
- apache开源项目 -- VXQuery
Apache VXQuery 是一个兼容标准的 XML 查询处理器的实现.主要适合非常大量的 XML 数据处理. 参考: http://www.apache.org/
- matlab中,计算,记录,程序运行,起始,结束 时间,间隔 &matlab中 tic,toc函数的用法
Tic和toc函数可以计算运行一段时间的代码. 例如: clc tic d=zeros(1,10000); for i=1:10000 d(i)=i; end toc tic c=1; for i=1 ...
- 【js】js方法中直接跳转到servlet
function firm_back_state(id,name){ if(confirm("确认返单?")){ location.href="Edit_OrderSer ...
- 【转】iOS中定时器NSTimer的使用
原文网址:http://www.cnblogs.com/zhulin/archive/2012/02/02/2335866.html 1.初始化 + (NSTimer *)timerWithTimeI ...
- 安卓dalvik和art区别
Dalvik模式像是一台折叠自行车,每次骑之前都要组装后才能上路.而ART模式就是一个已经装好的自行车,直接就能上车走人.所以ART模式在效率上肯定是要好于Dalvik. 通过以上这种表格,我们可以直 ...
- Linux下利用ioctl函数获取网卡信息
linux下的ioctl函数原型如下: #include <sys/ioctl.h> int ioctl(int handle, int cmd, [int *argc, int argv ...
- IOS 多级列表展开控件
项目中实现了一个可以多级展开的列表控件.每次展开都是互斥的,就是说,展开一个cell 就会关闭其他展开的层. 可以呈现的效果如下图.第一个图片是应用中实现的效果.第二个是Demo中的效果.如果有新的需 ...
- C# 一次查询多表,填充DataSet并指定表名
lhrhi 原文 NET 一次查询多表,填充DataSet并指定表名(DataSet指定DataTable名称的技巧) 现实中的场景,有时可能需要一次查询数据库中表张.在使用SqlDataAdapte ...
- Permutations java实现
Given a collection of numbers, return all possible permutations. For example,[1,2,3] have the follow ...
- 用Apache Kafka构建流数据平台的建议
在<流数据平台构建实战指南>第一部分中,Confluent联合创始人Jay Kreps介绍了如何构建一个公司范围的实时流数据中心.InfoQ前期对此进行过报道.本文是根据第二部分整理而成. ...