全网唯一一篇dp题解

网上貌似全部都是哈希+二分(反正我是大概baidu了翻了翻)(还有人暴力AC了的。。)

哈希还是相对于dp还是比较麻烦的。

而且正确性还有可能被卡(当然这个题不会)

而且还容易写错。

我就懒得写哈希了。

这个题,貌似和一个题目很像啊~~~

P1387 最大正方形

P1387这个题相信大家都会吧。。

不会的话看那就随便找篇题解。。

这个题就是最大正方形的加强版。

设$f[x1][y1][x2][y2]$表示,在第一个正方形中,以$(x1,y1)$为右下角,第二个正方形中以$(x2,y2)$为右下角,公共正方形最大的边长。

然后一个四重循环。

因为都是正序的,所以没有后效性。

然后转移很自然了。

和P1387一样。

$f[x1][y1][x2][y2]=min(f[x1-1][y1-1][x2-1][y2-1],min(f[x1][y1-1][x2][y2-1],f[x1-1][y1][x2-1][y2]))+1;$

上代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=52;
int f[N][N][N][N];
int a[N][N],b[N][N];
int n;
int ans;
int main(){scanf("%d",&n);for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)scanf("%d",&a[i][j]);for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)scanf("%d",&b[i][j]);for(int x1=1;x1<=n;x1++){for(int y1=1;y1<=n;y1++){for(int x2=1;x2<=n;x2++){for(int y2=1;y2<=n;y2++){if(a[x1][y1]==b[x2][y2]){f[x1][y1][x2][y2]=min(f[x1-1][y1-1][x2-1][y2-1],min(f[x1][y1-1][x2][y2-1],f[x1-1][y1][x2-1][y2]))+1;}ans=max(ans,f[x1][y1][x2][y2]);}}}}printf("%d",ans);return 0;
}

虽然复杂度是$O(n^4)$不如哈希优秀。

但是好写啊!!

真是简单又自然

转载于:https://www.cnblogs.com/Miracevin/p/9735181.html

[JSOI2008]Blue Mary的战役地图——全网唯一一篇dp题解相关推荐

  1. BZOJ 1567: [JSOI2008]Blue Mary的战役地图

    二次联通门 : BZOJ 1567: [JSOI2008]Blue Mary的战役地图 /*BZOJ 1567: [JSOI2008]Blue Mary的战役地图社会我栋哥人怂P话多暴力能A题正解能W ...

  2. BZOJ 1567: [JSOI2008]Blue Mary的战役地图 矩阵二维hash

    1567: [JSOI2008]Blue Mary的战役地图 Description Blue Mary最近迷上了玩Starcraft(星际争霸) 的RPG游戏.她正在设法寻找更多的战役地图以进一步提 ...

  3. BZOJ 1567: [JSOI2008]Blue Mary的战役地图( 二分答案 + hash )

    二分答案, 然后用哈希去判断... ------------------------------------------------------------------------- #include ...

  4. bzoj 1567: [JSOI2008]Blue Mary的战役地图 二维哈希

    1567: [JSOI2008]Blue Mary的战役地图 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1199  Solved: 702 [S ...

  5. 1567: [JSOI2008]Blue Mary的战役地图

    Description Blue Mary最近迷上了玩Starcraft(星际争霸) 的RPG游戏.她正在设法寻找更多的战役地图以进一步提高自己的水平. 由于Blue Mary的技术已经达到了一定的高 ...

  6. [JSOI2008]Blue Mary的战役地图 Hash题解

    题目描述 Blue Mary最近迷上了玩Starcraft(星际争霸) 的RPG游戏.她正在设法寻找更多的战役地图以进一步提高自己的水平. 由于Blue Mary的技术已经达到了一定的高度,因此,对于 ...

  7. [JSOI2008]Blue Mary的战役地图(二分+哈希)

    Blue Mary最近迷上了玩Starcraft(星际争霸) 的RPG游戏.她正在设法寻找更多的战役地图以进一步提高自己的水平. 由于Blue Mary的技术已经达到了一定的高度,因此,对于用同一种打 ...

  8. B1567 [JSOI2008]Blue Mary的战役地图 二分答案+hash

    一开始以为是dp,后来看了一下标签...二分答案?之前也想过,但是没往下想,然后之后的算法就顺理成章,先求出第一个地图的所有子矩阵的hash值,然后求第二个,在上一个地图例二分查找,然后就没了. 算法 ...

  9. [JSOI2008]Blue Mary的战役地图

    嘟嘟嘟 当看到n <= 50 的时候就乐呵了,暴力就行了,不过最暴力的方法是O(n7)--然后加一个二分边长达到O(n6logn),然后我们接着优化,把暴力比对改成O(1)的比对hash值,能达 ...

最新文章

  1. [CodeForces 300D Painting Square]DP
  2. matlab armax 无法识别,求教:Java调用系统辨识工具箱内的armax函数出错
  3. 选择交换机需要了解的一些性能参数
  4. 那些你不知道的程序员的多重身份
  5. 【乘风破浪的开发者】丁一超:从AI实战营出发探索未知的AI世界
  6. C 程序的存储空间布局
  7. java同步方法同步块_java 同步代码块与同步方法
  8. 【LeetCode】Python之旅 1-2
  9. JavaWeb公交调度系统的设计与实现
  10. 三菱PLC 定时器
  11. SciPyCon 2018 sklearn 教程(下)
  12. SAN 光纤交换机配置远距离级联(EF)操作
  13. 求最长上升子序列——LIS的O(nlogn)算法(二分)
  14. 【Leetcode】644. Maximum Average Subarray II
  15. 看雪CTF2020 KCTF 秋季赛 签到题
  16. [乐意黎]合同条款里的包括但不限于的确切含义
  17. PicGo+Typora图床搭建教程
  18. C# 文件的保存与读取
  19. 数据库中存储过程语法
  20. 《C语言程序设计(第四版)谭浩强》学习笔记

热门文章

  1. C++Primer 中文版第5版 习题3.26
  2. 排序链表—leecode148
  3. pstools psexec 执行文件
  4. Win7运行QQ2010提示“应用程序无法启动”,因为应用程序的并行配置不正确
  5. 关于mysql数据库的外键插入报错:Cannot add or update a child row: a foreign key constraint fails,完整性问题
  6. 电路知识--认识原理图(四)
  7. Pixhawk代码分析-基础知识
  8. HDU 5131 Song Jiang's rank list
  9. STC89C52RC单片机例程实现_流水灯1_模块化(C语言实现)
  10. x86汇编从实模式到保护模式-程序加载器