当前位置: 首页 > wzjs >正文

山东省建设局拖欠工资网站企业公示信息查询系统全国

山东省建设局拖欠工资网站,企业公示信息查询系统全国,东莞网站设计,免费的短视频推荐app题目传送门 前言 每次准备摸鱼时都在这道题的界面。 今天有空做做,顺便写一波题解,毕竟估值蹭蹭往下跳。 双倍经验:P1004 [NOIP 2000 提高组] 方格取数,P1006 [NOIP 2008 提高组] 传纸条。 题意简述 现有一个 m m m 行 n …

题目传送门

前言

每次准备摸鱼时都在这道题的界面。

今天有空做做,顺便写一波题解,毕竟估值蹭蹭往下跳。

双倍经验:P1004 [NOIP 2000 提高组] 方格取数,P1006 [NOIP 2008 提高组] 传纸条。

题意简述

现有一个 m m m n n n 列的矩阵,每个位置上都有一个 [ 0 , 100 ] [0, 100] [0,100] 的整数。

你需要在这个矩阵上走两遍,第一遍从左上走到右下,这时你只能向下、向右走。第二遍从右下走到左上,这是你只能向上、向左走。要求两条路径不能有重合(矩阵的左上角与右下角除外)。

请你求出这两条路径所经过的点的总和的最大值。

解题思路

如果你做过 P1004 [NOIP 2000 提高组] 方格取数,那么改一下输入就能过。

但是为什么 dp 式子不用改?且听我慢慢道来。

众所周知,这道题从右下走到左上与从左上做到右下是等价的。所以,我们巧妙的将这道题转化为了:从左上走到右下,被走过的点不能再走,再从左上走到右下所经过的点的总和的最大值。

于是我们定义 d p i , j , k , l dp_{i, j, k, l} dpi,j,k,l 为第一遍走到了 ( i , j ) (i,j) (i,j),第二遍走到了 ( k , l ) (k,l) (k,l) 时的最大值。那么状态转移方程就是
d p i , j , k , l = { max ⁡ { d p i − 1 , j , k − 1 , l , d p i − 1 , j , k , l − 1 , d p i , j − 1 , k − 1 , l , d p i , j − 1 , k , l − 1 } + a i , j + a k , l , if  i ≠ k ∧ j ≠ l ∨ ( i = 1 ∧ j = 1 ∨ i = m ∧ j = n ) − 1 , if  i = k ∧ j = l ∧ ¬ ( i = 1 ∧ j = 1 ∨ i = m ∧ j = n ) \begin{equation*} dp_{i, j, k, l} = \begin{cases} \max\{dp_{i - 1, j, k - 1, l}, dp_{i - 1, j, k, l - 1}, dp_{i, j - 1, k - 1, l}, dp_{i, j - 1, k, l - 1}\} + a_{i,j} + a_{k,l}, & \text{if } i \neq k \land j \neq l \lor (i = 1 \land j = 1 \lor i = m \land j = n) \\ -1, & \text{if } i = k \land j = l \land \neg(i = 1 \land j = 1 \lor i = m \land j = n) \end{cases} \end{equation*} dpi,j,k,l={max{dpi1,j,k1,l,dpi1,j,k,l1,dpi,j1,k1,l,dpi,j1,k,l1}+ai,j+ak,l,1,if i=kj=l(i=1j=1i=mj=n)if i=kj=l¬(i=1j=1i=mj=n)
是不是看起来很复杂?实际上也就只是 LaTeX \LaTeX LATEX 输起来复杂。如果懒得看以上形式,直接看代码就行。

CODE:

#include <bits/stdc++.h>
using namespace std;
#define int long long
int a[60][60];
int dp[60][60][60][60];
signed main() {ios::sync_with_stdio(false);ios_base::sync_with_stdio(false);cin.tie(0), cout.tie(0);int m, n;cin >> m >> n;for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {cin >> a[i][j];}}for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {for (int k = 1; k <= m; k++) {for (int l = 1; l <= n; l++) {dp[i][j][k][l] = max(dp[i - 1][j][k - 1][l], dp[i - 1][j][k][l - 1]);dp[i][j][k][l] = max(dp[i][j - 1][k - 1][l], max(dp[i][j][k][l], dp[i][j - 1][k][l - 1]));dp[i][j][k][l] += a[i][j] + a[k][l];if (i == k && j == l && !(i == 1 && j == 1 || i == m && j == n)) {dp[i][j][k][l] = -114514;}}}}}cout << dp[m][n][m][n];return 0;
}

文章转载自:

http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://00000000.ymqfx.cn
http://www.dtcms.com/wzjs/612951.html

相关文章:

  • 网站底部版权代码直播代运营公司
  • 网站托管如何收费丹阳网络营销
  • 深圳市企业网站seo营销工具h5网站系统
  • 提高自己网站云南手机网站建设公司
  • 单位网站源码配送网站开发
  • 山东省东营市建设局网站建设外贸网站哪家好
  • 深圳建设网站培训机构做网站搞活动
  • 网站建设价格怎么算wordpress副标题调用
  • 信用体系建设网站维运工作制度用虚拟机做服务器搭建网站
  • 做网站只有域名快速建站费用
  • 网站建设时怎么附加数据库建筑设计服务平台
  • 网站开发厦门企业网站建设公司价格
  • 曲阳网站建设推广账号权重查询入口
  • 智能网站推广软件大良外贸网站设计
  • 企业网站备案怎么做做拍卖网站多少钱
  • 如何免费做网站 详细点说前端网站页面模板
  • 上海高端模板建站建立网站平台
  • 男女做羞羞羞的事视频网站公司网站网站不备案
  • 找工程做在哪个网站?织梦网站内部优化
  • 山东外贸网站建设怎么样全网营销包括什么
  • 自动交换友情链接游戏优化大师手机版
  • 如何通过网站获取qqeechina电子工程网
  • 网站备案号注销查询什么软件可以做网站动图
  • 美的集团网站建设网站建设实训报告作业
  • 苏州网站建设狮山路网络在线培训网站建设方案
  • linux做ppt下载网站做网站虚拟主机价格
  • 昌吉做网站网站建设中 油财宝
  • 三亚网站定制开发公司h5制作微信小程序
  • 新网站建设教程新网域名注册官网
  • 珠海网站策划公司网站快速备案