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

齐河县城乡建设局网站做排名优化

齐河县城乡建设局网站,做排名优化,唐山做网站价格,wordpress早期版本注意事项&#xff1a; 本题属于"数字三角形"和"摘花生"两题的进阶版&#xff0c;建议优先看懂那两道&#xff0c;有助理解。 题目&#xff1a; 输入: 8 2 3 13 2 6 6 3 5 7 4 4 14 5 2 21 5 6 4 6 3 15 7 2 14 0 0 0输出&#xff1a; 67#include <cm…

注意事项:
本题属于"数字三角形"和"摘花生"两题的进阶版,建议优先看懂那两道,有助理解。

题目:
请添加图片描述

输入:
8
2 3 13
2 6 6
3 5 7
4 4 14
5 2 21
5 6 4
6 3 15
7 2 14
0 0 0
输出:
67
#include <cmath>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;int const N = 11;
int w[N][N], f[N+N][N][N];  //注意k要开两倍,因为是i+j的总和
int n;int main()
{cin >> n;//接收数据直到“0 0 0”为止int a, b, c;while (cin >> a >> b >> c, a || b || c) w[a][b] = c;//线性dpfor (int k = 2; k<=n+n; k++) {for (int i1 = 1; i1<=n; i1++) {for (int i2 = 1; i2<=n; i2++) {// k = i1+j1 = i2+j2, 切记是相等关系int j1 = k-i1, j2 = k-i2;if (j1 >= 1 && j2 >= 1 && j1 <= n && j2 <= n) {   //判断j1和j2的合法性//如果是重叠点就只加一次,例如(1,2)(1,2), 如果是非重叠点就将两个点都加上,例如(1, 2)(2, 1)int t = w[i1][j1];if (i1 != i2) t += w[i2][j2];//引用节省代码量,分四种情况讨论上两个点如何进行移动int &x = f[k][i1][i2];x = max(x, f[k-1][i1-1][i2-1]);     //down,downx = max(x, f[k-1][i1-1][i2![请添加图片描述](https://img-blog.csdnimg.cn/bd275c5a76dc45349b5cbc3ea8b6aa6d.png)
);       //down,rightx = max(x, f[k-1][i1][i2-1]);       //right,downx = max(x, f[k-1][i1][i2]);         //right, rightx += t;}}}}cout << f[n+n][n][n];return 0;
}

思路:
这道题的难点在于如何将每次一个点的线性dp转变为同时计算两个点
1:将单一点的线性dp跑两次,计算的时候将走过的点进行标注,权重变为0即可。
2:找到点与点的关系,同时计算两个点的dp。

这里我们讲第二种
还是熟悉的y式dp法。

1.状态表示:
f[k][i1][i2]: 从(1, 1)走到(i1, j1) 和 从(1, 1)走到(i2, j2)的最优方案的总和,并且两条线的重复点只能计算一次,属性为Max。

这里的k是表示当 (i1, j1)(i2, j2) 的横纵坐标和 相同时的值。
也就是k = i1+j1 = i2+j2, 因为这样的话,通过k,i1,i2可以推导出j1,j2的值,通过一个量来保存两个量。

这样就很巧妙的解决了标记已使用点的问题,如果两条线走到了相同点,
也就是当i1 = i2, j1 = j2(j1 = k-i1, j2 = k-i2),说明它们在相同点上那么这个点就只计算一次即可,因为数只能取一次。
而当i1 != i2说明状态转移后不在同一个点,那么分别计算w(i1,j1),w(i2,j2)两次。

2.状态计算:
两个点的前一个点向分别向右或下转移,所以有四种情况来讨论:

 f[k-1][i1-1][i2-1] + t   	down,downf[k-1][i1-1][i2] + t     	down,rightf[k-1][i1][i2-1] + t    	right,downf[k-1][i1][i2] + t       	right,right

也就是:f[k][i1][i2] = max(dd, dr, rd, rr)

声明:
算法思路来源为y总,详细请见https://www.acwing.com/
本文仅用作学习记录和交流

ps:最近要开学啦,恢复更新(假期的我真是懒狗…

http://www.dinnco.com/news/58523.html

相关文章:

  • 英文外贸网站制作友链交换平台
  • 深圳高端网站建设河南网站推广那家好
  • 删除wordpress有什么影响武汉seo排名
  • 网站建设 问答2020做seo还有出路吗
  • 鄂尔多斯网站建设seo网上课程
  • 公司网站怎么做百度竞价优化网站搜索
  • 东莞市广建建设工程有限公司晨阳seo服务
  • 电商网站建设思维导图百度电脑版下载
  • 微信开发者文档下载seo和sem的区别是什么
  • 中国疾控中心最新发布昆明seo建站
  • 榆次住房和城乡建设局网站seo优化方案总结
  • 地方门户网站开发aso优化分析
  • 杭州网站建设哪家靠谱营销百度app下载手机版
  • 新手学做网站 iso ed2k会计培训班需要学多长时间
  • 做网站怎么样才能赚到钱太原seo排名收费
  • app生成下载链接杭州网站优化服务
  • 信阳市两学一做网站深圳seo网络优化公司
  • 做ghost系统的网站有哪些口碑营销例子
  • wordpress 更改编辑器如何利用seo赚钱
  • 现在网站要怎么做才有人网站推广的主要方式
  • 做网站公司需要什么职位十大营销策略
  • 贸易公司寮步网站建设价钱郑州seo推广
  • 锋云科技网站建设职业技术培训机构
  • 有声直播网站建设百度收录方法
  • 安徽东莞建设集团有限公司百度关键词优化排名
  • 模板建站oem代理微信营销平台系统
  • 平度网站制作宁波正规优化seo公司
  • 佛山 做网站公司有哪些大型门户网站建设
  • asp网站水印支除谷歌流量代理代理
  • 在网站做专题网站seo优化怎么做