解题:POI 2009 TAB
这也算是个套路题(算吗)?发现换来换去每行每列数的组成是不变的,那么就把每行每列拎出来哈希一下,复杂度$O(Tn^2log$ $n)$有点卡时=。=。
然而正解似乎不需要哈希,就像这样↓
for(int i=;i<=n;i++)
for(int j=;j<=m;j++){
int xxx=read();
x[xxx+A]=i;
y[xxx+A]=j;
}
bool b=true;
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
a[i][j]=read();
if(x[a[i][j]+A]!=x[a[i][]+A]||x[a[i][j]+A]==)b=false;
if(y[a[i][j]+A]!=y[a[][j]+A]||y[a[i][j]+A]==)b=false;
}
}
(来自洛谷题解,侵删)
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ull unsigned long long
using namespace std;
const int N=,P=1e6;
const long long bas=;
ull tmp[N],hsh[][*N];
int mapp[N][N],n,m,T;
int main ()
{
register int i,j,k;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
memset(hsh,,sizeof hsh);
for(k=;k<=;k++)
{
for(i=;i<=n;i++)
for(j=;j<=m;j++)
scanf("%d",&mapp[i][j]),mapp[i][j]+=P;
for(i=;i<=n;i++)
{
for(j=;j<=m;j++)
tmp[j]=mapp[i][j];
sort(tmp+,tmp++m);
for(j=;j<=m;j++)
hsh[k][i]=hsh[k][i]*bas+tmp[j];
}
for(i=;i<=m;i++)
{
for(j=;j<=n;j++)
tmp[j]=mapp[j][i];
sort(tmp+,tmp++n);
for(j=;j<=n;j++)
hsh[k][i+n]=hsh[k][i+n]*bas+tmp[j];
}
}
sort(hsh[]+,hsh[]++n+m);
sort(hsh[]+,hsh[]++n+m);
bool f=true;
for(i=;i<=n+m&&f;i++)
if(hsh[][i]!=hsh[][i]) f=false;
f?printf("TAK\n"):printf("NIE\n");
}
return ;
}
解题:POI 2009 TAB的更多相关文章
- 解题:POI 2009 Fire Extinguishers
题面 洛谷数据非常水,建议去bzoj 我第一眼一看这不是那个POI2011的升级版吗(明明这个是2009年的,应该说那个是这个的弱化版,果然思想差不多. 因为$k$很小,可以考虑每个间隔距离来转移.我 ...
- 解题:POI 2009 Ticket Inspector
题面 看起来很水,然而不会DP的蒟蒻并不会做,PoPoqqq orz 设$f[i][j]$表示当前在第$i$个点和第$i+1$个点之间查票,已经查了$j$次的最大收益.然后就是那种很常见的枚举前一个结 ...
- 解题:POI 2009 Lyz
题面 板板讲的霍尔定理 霍尔定理:一张二分图有完全匹配的充要条件是对于任$i$个左部点都有至少$i$个右部点与它们相邻.放在这个题里就是说显然最容易使得鞋不够的情况是一段连续的人,那就维护一下最大子段 ...
- [POI 2009]Lyz
Description 题库链接 初始时滑冰俱乐部有 \(1\) 到 \(n\) 号的溜冰鞋各 \(k\) 双.已知 \(x\) 号脚的人可以穿 \(x\) 到 \(x+d\) 的溜冰鞋.有 \(m\ ...
- 【BZOJ 1115】【POI 2009】石子游戏Kam
http://www.lydsy.com/JudgeOnline/problem.php?id=1115 差分后变成阶梯博弈. #include<cstdio> #include<c ...
- 【Nim 游戏】 学习笔记
前言 没脑子选手随便一道博弈论都不会 -- 正文 Nim 游戏引入 这里给出最简单的 \(Nim\) 游戏的题目描述: \(Nim\) 游戏 有两个顶尖聪明的人在玩游戏,游戏规则是这样的: 有\(n\ ...
- 解题:POI 2016 Nim z utrudnieniem
题面 出现了,神仙题! 了解一点博弈论的话可以很容易转化题面:问$B$有多少种取(diu)石子的方式使得取后剩余石子异或值为零且取出的石子堆数是$d$的倍数 首先有个暴力做法:$dp[i][j][k] ...
- 解题:NOI 2009 诗人小G
题面 今天考试考了,于是开始糊学决策单调性DP 这是一个完全不会优化DP的人 决策单调性DP的一种优化方法是用单调队列优化 存下{左端点l,右端点r,最优决策点p}的三元组,按照单调队列的通常操作来说 ...
- 解题:NOI 2009 管道取珠
题面 考虑这个平方的实际意义,实际是说取两次取出一样的序列 那么设$dp[i][j][k][h]$表示第一次在上面取$i$个下面取$j$个,第二次在上面取$k$个下面取$h$个的方案数 等等$n^4$ ...
随机推荐
- 基于MapReduce的(用户、物品、内容)的协同过滤推荐算法
1.基于用户的协同过滤推荐算法 利用相似度矩阵*评分矩阵得到推荐列表 已经推荐过的置零 2.基于物品的协同过滤推荐算法 3.基于内容的推荐 算法思想:给用户推荐和他们之前喜欢的物品在内容上相似的物品 ...
- hdu1042 N!(大数求阶乘)
N! Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submi ...
- 爬虫2.3-scrapy框架-post、shell、验证码
目录 scrapy框架-post请求和shell 1. post请求 2. scrapy shell 3. 验证码识别 scrapy框架-post请求和shell 1. post请求 scrapy框架 ...
- QSS 样式示例:QTreeWidget, QComboBox,QSlider,QSpinBox
目录 Image 填充整个控件的区域 QTreeWidget QSpinbox 的上翻下翻按钮和箭头 QComboBox 的设置,大坑 QSlider 最近需要对一个软件加上Qt界面和 的样式,第一次 ...
- JavaScript学习笔记(五)——类型、转换、相等、字符串
第六章 类型 相等 转换等 一.类型 1 typeof(); typeof是一个内置的JavaScript运算符,可用于探测其操作数的类型. 例: <script language=" ...
- Pycharm实现服务器端代码的远程调试
Pycharm是很多人在学习机器学习时的常用IDE.但是,当代码需要庞大计算资源的时候,我们往往需要借助远程服务器的GPU资源.很多人都是将代码拷贝到服务器,然后运行,但是当修改调试的时候,很不方便 ...
- mysql先删除后插入导致死锁
所报的错误为:pymysql.err.OperationalError: (1213, 'Deadlock found when trying to get lock; try restarting ...
- ionic 开发实例
ionic 开发实例 一.ionic初始化项目 1:安装ionic npm install -g ionic 2:初始化项目框架 我们可以用命令创建一个应用程序,可以使用我们的一个现成的应用程序模板, ...
- Scrum立会报告+燃尽图(十月十日总第一次):选题
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2190 Scrum立会master:付佳 一.小组介绍 组长:付佳 组员: ...
- Qt容器类汇总说明
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt容器类汇总说明 本文地址:http://techieliang.com/2017/ ...