[JSOI2008]Blue Mary的战役地图——全网唯一一篇dp题解
全网唯一一篇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题解相关推荐
- BZOJ 1567: [JSOI2008]Blue Mary的战役地图
二次联通门 : BZOJ 1567: [JSOI2008]Blue Mary的战役地图 /*BZOJ 1567: [JSOI2008]Blue Mary的战役地图社会我栋哥人怂P话多暴力能A题正解能W ...
- BZOJ 1567: [JSOI2008]Blue Mary的战役地图 矩阵二维hash
1567: [JSOI2008]Blue Mary的战役地图 Description Blue Mary最近迷上了玩Starcraft(星际争霸) 的RPG游戏.她正在设法寻找更多的战役地图以进一步提 ...
- BZOJ 1567: [JSOI2008]Blue Mary的战役地图( 二分答案 + hash )
二分答案, 然后用哈希去判断... ------------------------------------------------------------------------- #include ...
- bzoj 1567: [JSOI2008]Blue Mary的战役地图 二维哈希
1567: [JSOI2008]Blue Mary的战役地图 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1199 Solved: 702 [S ...
- 1567: [JSOI2008]Blue Mary的战役地图
Description Blue Mary最近迷上了玩Starcraft(星际争霸) 的RPG游戏.她正在设法寻找更多的战役地图以进一步提高自己的水平. 由于Blue Mary的技术已经达到了一定的高 ...
- [JSOI2008]Blue Mary的战役地图 Hash题解
题目描述 Blue Mary最近迷上了玩Starcraft(星际争霸) 的RPG游戏.她正在设法寻找更多的战役地图以进一步提高自己的水平. 由于Blue Mary的技术已经达到了一定的高度,因此,对于 ...
- [JSOI2008]Blue Mary的战役地图(二分+哈希)
Blue Mary最近迷上了玩Starcraft(星际争霸) 的RPG游戏.她正在设法寻找更多的战役地图以进一步提高自己的水平. 由于Blue Mary的技术已经达到了一定的高度,因此,对于用同一种打 ...
- B1567 [JSOI2008]Blue Mary的战役地图 二分答案+hash
一开始以为是dp,后来看了一下标签...二分答案?之前也想过,但是没往下想,然后之后的算法就顺理成章,先求出第一个地图的所有子矩阵的hash值,然后求第二个,在上一个地图例二分查找,然后就没了. 算法 ...
- [JSOI2008]Blue Mary的战役地图
嘟嘟嘟 当看到n <= 50 的时候就乐呵了,暴力就行了,不过最暴力的方法是O(n7)--然后加一个二分边长达到O(n6logn),然后我们接着优化,把暴力比对改成O(1)的比对hash值,能达 ...
最新文章
- [CodeForces 300D Painting Square]DP
- matlab armax 无法识别,求教:Java调用系统辨识工具箱内的armax函数出错
- 选择交换机需要了解的一些性能参数
- 那些你不知道的程序员的多重身份
- 【乘风破浪的开发者】丁一超:从AI实战营出发探索未知的AI世界
- C 程序的存储空间布局
- java同步方法同步块_java 同步代码块与同步方法
- 【LeetCode】Python之旅 1-2
- JavaWeb公交调度系统的设计与实现
- 三菱PLC 定时器
- SciPyCon 2018 sklearn 教程(下)
- SAN 光纤交换机配置远距离级联(EF)操作
- 求最长上升子序列——LIS的O(nlogn)算法(二分)
- 【Leetcode】644. Maximum Average Subarray II
- 看雪CTF2020 KCTF 秋季赛 签到题
- [乐意黎]合同条款里的包括但不限于的确切含义
- PicGo+Typora图床搭建教程
- C# 文件的保存与读取
- 数据库中存储过程语法
- 《C语言程序设计(第四版)谭浩强》学习笔记
热门文章
- C++Primer 中文版第5版 习题3.26
- 排序链表—leecode148
- pstools psexec 执行文件
- Win7运行QQ2010提示“应用程序无法启动”,因为应用程序的并行配置不正确
- 关于mysql数据库的外键插入报错:Cannot add or update a child row: a foreign key constraint fails,完整性问题
- 电路知识--认识原理图(四)
- Pixhawk代码分析-基础知识
- HDU 5131 Song Jiang's rank list
- STC89C52RC单片机例程实现_流水灯1_模块化(C语言实现)
- x86汇编从实模式到保护模式-程序加载器