题意:

在一个n*m的矩阵中有两只虫子,一只从左上角向右下角移动,另外一只从左下角向右上角移动。

要求:

1.第一只虫子每次只能向左或者向下移动一格,另外一只只能向上或者向右移动一格。

2.两只虫子的路径最多只能重合一点。

3.求解两只虫子路径中除去重合那点其余各点的权值之和最大。

思路:

1.显然这题需要枚举所有可能的相交的点。

2.将问题转化成从四个角向可能的交点的四条路的权值最大。

3.为了保证路径只能有一个交点,我们考虑从可能的交点的上面的点通往上侧的两个角,左面的点通往左侧的两个角以此类推(参考大神的思想)。

4.用递推式子f[i][j]=max(f[i-1][j],f[i][j-1])+map[i][j].(这里只是写了其中一种情况(从左上角到该点的情况,其他三种情况类似))。

坑点:

边界上的点一定不可能作为唯一的交点。

#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
int pho[][];
int pho1[][];
int pho2[][];
int pho3[][];
int pho4[][]; int main()
{
int n,m;
memset(pho,,sizeof(pho));
memset(pho1,,sizeof(pho1));
memset(pho2,,sizeof(pho2));
memset(pho3,,sizeof(pho3));
memset(pho4,,sizeof(pho4));
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
scanf("%d",&pho[i][j]);
}
}
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
pho1[i][j]=max(pho1[i-][j],pho1[i][j-])+pho[i][j];
}
}
for(int i=n;i>=;i--)
{
for(int j=m;j>=;j--)
{
pho2[i][j]=max(pho2[i+][j],pho2[i][j+])+pho[i][j];
}
}
for(int i=n;i>=;i--)
{
for(int j=;j<=m;j++)
{
pho3[i][j]=max(pho3[i+][j],pho3[i][j-])+pho[i][j];
}
}
for(int i=;i<=n;i++)
{
for(int j=m;j>=;j--)
{
pho4[i][j]=max(pho4[i-][j],pho4[i][j+])+pho[i][j];
}
}
int ans=-;
bool ok=;
for(int i=;i<n;i++)
{
for(int j=;j<m;j++)
{
ans=max(ans,pho1[i-][j]+pho2[i+][j]+pho3[i][j-]+pho4[i][j+]);
ans=max(ans,pho1[i][j-]+pho2[i][j+]+pho3[i+][j]+pho4[i-][j]);
}
}
printf("%d\n",ans);
}

最新文章

  1. C# ADO.NET 连接Sybase 数据库
  2. Xcode开发中的6个小技巧
  3. java 多线程—— 线程让步
  4. jquery1.0源码【1-60行】构造函数及全局$变量
  5. IOS四种保存数据的方式
  6. Spring Data Jpa 详解 (配置篇)
  7. App.config提示错误“配置系统未能初始化”
  8. 开启g++ 编辑器 c++11特性
  9. 自己动手写spring容器(3)
  10. 【充分利用你的Azure】将Azure用作云计算平台(1)
  11. Bootstrap 开关(switch)使用整理
  12. [Angular2]eclipse中angular2开发环境的搭建
  13. centos7 下zookeeper 部署 单机多实例模式
  14. 2018-2019-2 20175218 实验一《Java开发环境的熟悉》实验报告
  15. Scrapy简单入门及实例讲解
  16. 洛谷P2234 [HNOI2002]营业额统计
  17. hdu 1509 &amp; hdu 1873 &amp; hdu 1896 (基础优先队列)
  18. CSS单位分析
  19. C语言与VT100控制码编程
  20. 《Linux内核设计与实现》学习总结 Chap4

热门文章

  1. 【转载】Hierarchal Temporal Memory (HTM)
  2. react基础语法(二)常用语法如:样式 ,自定义属性,常用表达式
  3. hdu 2192 MagicBuilding
  4. docker的网络配置
  5. JS concat() 方法
  6. Python3简明简称(八)—— 函数
  7. C++:new的使用
  8. 暑假集训 || AC自动机
  9. 第1节 flume:10、flume的更多组件介绍
  10. 洛谷 P4073 [WC2013]平面图