bzoj1567: [JSOI2008]Blue Mary的战役地图
传送门
二分答案+哈希。
二分边长,哈希判断是否相等。
注意,行/列上计算key时乘的数应不同。
#include<cstring>
#include<cmath>
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<algorithm>
#include<map>
#define ll long long
using namespace std;
ll a[2][55][55],f[2][55][55],t[55],b[2505];
int n,l,r,m,ans;
inline ll read(){ll x=0,f=1;char ch=getchar();for (;ch<'0'||ch>'9';ch=getchar()) if (ch=='-') f=-1;for (;ch>='0'&&ch<='9';ch=getchar()) x=x*10+ch-48;return x*f;
}
inline ll cal(int x,int y,int z,int m){ll val=1;for (int i=y;i<y+m;i++)val=val*3659+f[x][i][z+m-1]-f[x][i][z-1]*t[m];return val;
}
inline int jud(int m){int cnt=0;for (int i=1;i<=n-m+1;i++)for (int j=1;j<=n-m+1;j++)b[++cnt]=cal(0,i,j,m);sort(b+1,b+cnt+1);for (int i=1;i<=n-m+1;i++)for (int j=1;j<=n-m+1;j++){ll t=cal(1,i,j,m);if (*lower_bound(b+1,b+cnt+1,t)==t) return 1;} return 0;
}
int main(){n=read();t[0]=1;for (int i=1;i<=n;i++) t[i]=t[i-1]*1789;for (int i=0;i<2;i++)for (int j=1;j<=n;j++)for (int k=1;k<=n;k++) a[i][j][k]=read();for (int i=0;i<2;i++)for (int j=1;j<=n;j++){f[i][j][0]=1;for (int k=1;k<=n;k++) f[i][j][k]=f[i][j][k-1]*1789+a[i][j][k];}l=1,r=n;while (l<=r){m=(l+r)/2;if (jud(m)) ans=m,l=m+1;else r=m-1;}printf("%d",ans);
}
bzoj1567: [JSOI2008]Blue Mary的战役地图相关推荐
- BZOJ1567 [JSOI2008]Blue Mary的战役地图(二分+二维hash)
题意 问边长为n的两个正方形中最大的相等子正方形.(n<=50) 题解 用到了二维hash,感觉和一维的不太一样. 对于列行有两个不同的进制数然后也是通过类似前缀和的方法差分出一个矩形的hash ...
- BZOJ1567 [JSOI2008]Blue Mary的战役地图
枚举答案然后hash判断即可 矩阵就把每一行接一起hash就行了 我用了双模双base,单模单base被卡了 #include<iostream> #include<cstring& ...
- [BZOJ1567][JSOI2008]Blue Mary的战役地图(二分+矩阵hash)
题目描述 传送门 题解 二分答案之后 O(n2) O(n^2)矩阵hash 就是个裸题 代码 #include<algorithm> #include<iostream> #i ...
- 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的技术已经达到了一定的高度,因此,对于 ...
最新文章
- 美多商城之用户登录(QQ登录)
- 日本光伏相关企业倒闭数量上升 帝国征信调查
- 行业观察(一)| 从渠道为王到数据为王——浅谈服装零售企业的数字化转型...
- zynq学习02 新建一个Helloworld工程
- Hbase 学习(三)Coprocessors
- mysql序列号生成_一文看懂mycat的6种全局序列号实现方式
- android8.0和9.0平板电脑区别,安卓9.0和8.0有什么区别? 哪个更好
- 微服务、容器、DevOps三者之间的关系你清楚吗?
- 别双击闪存盘 惊醒病毒就不得了
- 模糊搜索简单算法fuzzywuzzy
- php 多元数组,php数组_php多元数组
- ApacheCN C# 译文集 20211124 更新
- Reasoning methods include
- ipad适用计算机专业么,并不适合所有人 iPad Pro买前需认识这几点
- 雨雨cms-YYCMS5.0新版影视网源码自动采集数据-玥雅CMS
- 同样的代码不同环境 提示握手失败:ssl_client_socket_impl.cc handshake failed
- JAVA和Python HmacSHA1 算法计算API签名的实现
- Adobe Acrobat DC 2022 直装版
- 阿里云安骑士和态势感知SAS有区别吗?
- 楼宇自控系统 建筑设备监控系统 触摸屏图库 昆仑通态触摸屏专用 \触摸屏组态图库