BZOJ 1142 POI2009 Tab Hash
题目大意:给定两个矩阵,保证矩阵内所有元素都不相同,求第一个矩阵通过交换行和列是否可以得到第二个矩阵
令每一行的哈希值为这一行的元素排序后的RK哈希值,将行按照哈希值排序
然后把每一列按顺序哈希一下,排个序取RK哈希作为整个矩阵的哈希值
判断两个矩阵的哈希值是否相等即可
由于矩阵中元素不重复所以可以保证第一步的哈希值不会出现重复
然后。。。我都写完了它告诉我是2B题????
算了反正POI官网上能过就是了= =
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define M 1010
#define BASE1 999911657
#define BASE2 999911659
using namespace std;
int m,n;
int a[M][M],b[M][M];
unsigned long long Calculate()
{int i,j;static pair<unsigned long long,int> c[M];for(i=1;i<=m;i++){static int temp[M];for(j=1;j<=n;j++){scanf("%d",&a[i][j]);temp[j]=a[i][j];}sort(temp+1,temp+n+1);c[i]=make_pair(0ull,i);for(j=1;j<=n;j++)(c[i].first*=BASE1)+=temp[j];}sort(c+1,c+m+1);for(i=1;i<=m;i++)for(j=1;j<=n;j++)b[i][j]=a[c[i].second][j];static unsigned long long d[M];for(j=1;j<=n;j++){d[j]=0;for(i=1;i<=m;i++)(d[j]*=BASE1)+=b[i][j];}sort(d+1,d+n+1);unsigned long long re=0;for(i=1;i<=n;i++)(re*=BASE2)+=d[i];return re;
}
int main()
{int T;for(cin>>T;T;T--){cin>>m>>n;unsigned long long hash1=Calculate();unsigned long long hash2=Calculate();puts(hash1==hash2?"TAK":"NIE");}return 0;
}
BZOJ 1142 POI2009 Tab Hash相关推荐
- [BZOJ 1135][POI2009]Lyz
[BZOJ 1135][POI2009]Lyz 题意 初始时滑冰俱乐部有 \(1\) 到 \(n\) 号的溜冰鞋各 \(k\) 双.已知 \(x\) 号脚的人可以穿 \(x\) 到 \(x+d\) 的 ...
- BZOJ 2084: [Poi2010]Antisymmetry(Hash+二分)
求一个01序列的子串取反并反转后与原串相同的个数. 很显而易见的是,反转的话只要子串对应的i和n-i+1位相反即可,这个看一下样例能很快看出来. 所以我们正着求一遍hash,反着取反然后求hash. ...
- bzoj 1115: [POI2009]石子游戏Kam(博弈)
1115: [POI2009]石子游戏Kam Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1132 Solved: 692 [Submit][S ...
- bzoj 1133: [POI2009]Kon(DP)
1133: [POI2009]Kon Time Limit: 10 Sec Memory Limit: 162 MB Submit: 457 Solved: 166 [Submit][Status ...
- Hall定理(bzoj 1135: [POI2009]Lyz)
Hall定理(二分图重要定理): 对于二分图U, V(|U|<|V|),设M(Ux)为V中可以与Ux中的点相连的点集,如果该二分图存在完美匹配 那么对于任意点集x∈U都有|M(x)|>=| ...
- BZOJ 2085 [Poi2010]Hamsters Hash+倍增floyd
题意:链接 方法: Hash+倍增floyd 解析: 首先这个BZ的无脑翻译我真是受不了. 加俩条件 所有串的长度总和不超过100000,并且对于任意不同子串A,B,A不包含于B,B不包含于A. 然后 ...
- BZOJ 2085 Poi2010 Hamsters Hash+倍增Floyd
题目大意:给定n个长度总和不超过10W的字符串,求一个最短的母串,使所有字符串的出现次数之和=m 这n个字符串保证不互相包含 TM能不能好好翻译了 令f[i][j]表示第i个字符串后面接上第j个字符串 ...
- BZOJ 1135 [POI2009]Lyz 线段树
题意:链接 方法:线段树维护子区间最值. 解析: 我们可以推出来一个式子. 就是如果满足题意的话. 那么任意一个子区间[l,r] f[i]表示穿i的鞋的人数 (r−l+1+d)∗k>=∑f[i] ...
- BZOJ[1135][POI2009]Lyz 线段树
传送门ber~ 如果某时不合法,那一定存在某段满足 (r−l+1+d)∗k<Σl≤i≤rnumi(r−l+1+d)∗k<Σl≤i≤rnumi (r-l+1+d)*k (其中 numinum ...
最新文章
- RHEL6基础四十二之RHEL文件共享①NFS
- 4.21 LNMP环境介绍 4.22/23/24 Mariadb安装 4.25 服务管理
- 服务器选购seo优化规则,如何选择有利于SEO优化的空间服务器
- 【填坑中】学生信息管理系统
- 一张图学会python高清图-一张图让你学会Python
- 腾讯游戏人脸识别系统更新!刷脸的同时语音提示付款成功_游侠网 Ali213.net
- paip.网站上传服务里需要做的操作流程V2012.10.2
- pom文件无法加载ojdbc14-10.2.0.4.0.jar
- web前端之JavaScript高级程序设计六:事件
- 福利 | 这些网站有免费代理IP!
- 计算机网络技术在实践中应用,计算机网络技术及在实践中的具体应用
- ue4 无限地图_基于UE4的开放世界地图架构
- linux pppd源码下载_LINUX下的拨号利器:wvdial和pppd —— 转载
- 考研数学汤家凤笔记第一章:极限与连续
- 解决php加载慢的一个办法
- update语句修改mysql密码_修改 mysql 密码
- Python生成英文词云图
- 母婴购物微信商城的设计与实现
- 这家刷脸入住的酒店,满屋都是黑科技
- 机场云商小程序sign分析,签名分析,机场下单包分析