n为奇数,左右交换不改变逆序对数个数,上下交换不改变逆序对奇偶性。
结论就是,将其转化成1维,将0去除掉,求逆序对的数量,看这两个的逆序对的奇偶性是否相同即可。

#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
const int N=1e5*3+10;
int n,temp[N];
void merge_sort(int l,int r,vector<int>&a,LL &ans)
{if(l>=r) return;int mid=l+r>>1;merge_sort(l,mid,a,ans),merge_sort(mid+1,r,a,ans);int i=l,j=mid+1,k=0;while(i<=mid&&j<=r){if(a[i]<=a[j]) temp[k++]=a[i++];else ans+=mid-i+1,temp[k++]=a[j++];}while(i<=mid) temp[k++]=a[i++];while(j<=r) temp[k++]=a[j++];for(int i=l,j=0;i<=r;i++,j++) a[i]=temp[j];
}
int main(void)
{while(cin>>n){vector<int>a,b;for(int i=1;i<=n*n;i++){int x; scanf("%d",&x);if(!x) continue;a.push_back(x);}for(int i=1;i<=n*n;i++){int x; scanf("%d",&x);if(!x) continue;b.push_back(x);}LL ans1=0,ans2=0;merge_sort(0,a.size()-1,a,ans1);merge_sort(0,a.size()-1,b,ans2);if( (ans1&1)==(ans2&1) ) puts("TAK");else puts("NIE");}return 0;
}

108. 奇数码问题【思维 / 逆序对】相关推荐

  1. 奇数码问题(逆序对)

    Description 你一定玩过八数码游戏,它实际上是在一个33的网格中进行的,1个空格和1~8这8个数字恰好不重不漏地分布在这33的网格中. 例如: 5 2 8 1 3 _ 4 6 7 在游戏过程 ...

  2. E. String Reversal(思维+逆序对)详解

    https://codeforces.com/contest/1430/problem/E 题意:交换相邻的字母使得字符串翻转的最小次数. 最近碰到了几道逆序对的题,有个比较明显的特征是交换相邻的数. ...

  3. What Goes Up Must Come Down(思维+逆序对构造LIS山峰)

    https://ac.nowcoder.com/acm/contest/7831/F 考虑题意:对于每一个数来说,它最终要不左边的数全比它小,要不右边的数全比他小. 交换相邻的两个数,其他数字的相对位 ...

  4. Codeforces Round #598 (Div. 3) F. Equalizing Two Strings 思维 + 逆序对

    传送门 文章目录 题意: 思路: 题意: 给你两个长度为nnn的串a,ba,ba,b,每次可以同时翻转a,ba,ba,b中任意一段长度为L(1≤L≤n)L(1\le L\le n)L(1≤L≤n)的子 ...

  5. Codeforces987 E. Petr and Permutations(思维+逆序对)

    题意: 一开始有一个长度为n的原排列a, 一次操作随机选择两个不同位置的数a(i)和a(j),然后交换. Petr会进行3n次操作,Alex会进行7n+1次操作. 现在给出结果序列,要求判断结果序列是 ...

  6. POJ - 2893 M × N Puzzle(n*m数码问题+逆序对结论)

    题目链接:点击查看 题目大意:给出一个n*m的数码问题,问是否能到达最终状态 题目分析:对于数码问题,我们先一步一步分析,先简单看一下定义: 八数码的问题描述为: 在3×3的棋盘上,摆有八个棋子,每个 ...

  7. 期望dp ---- B. Tree Array 思维+期望dp 逆序对期望数

    题目大意 题目大意: n(n≤200)n(n\leq200)n(n≤200)个节点的树.初始的时候,等概率随机选择一个点标记,接来随机选择一个与标记点相连的未标记点来标记,直到所有的点都被标记.根据点 ...

  8. 牛客IOI周赛26-提高组(逆序对,对序列,未曾设想的道路) 题解

    文章目录 逆序对 对序列 未曾设想的道路 牛客IOI周赛26-提高组 逆序对 这种套路之前已经见过几次了,肯定不是模拟操作数列 opt 1 对于i∈[1,l)⋃(r,n]i∈[1,l)\bigcup( ...

  9. 左神小和问题逆序对问题面试

    归并排序的扩展问题 --先了解数据结构之归并排序,更容易理解以下的问题. 小和问题和逆序对问题. 在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和.在一个数组中,左边的数如果比右边 ...

最新文章

  1. 广州.net俱乐部12月份ABP框架活动场地征集、志愿者征集、合作讲师\副讲师征集...
  2. [Leedcode][JAVA][第128题][最长连续序列][Hash]
  3. 实现阿里云容器镜像服务反向访问代理
  4. java环境变量自动设置_自动设置Java环境变量
  5. C++:通过多态实现接口并生成dll和lib文件的小例子
  6. linux php 5.3 变慢,异常在 PHP 5.3 中的最佳实践
  7. 如何用python批量下载数据_Python实现批量下载文件
  8. 1.2 案例:波士顿房价预测
  9. ICCV2013 录用论文(目标跟踪相关部分)
  10. 如何在快手批量下载高清无水印视频方法
  11. 百度硬盘搜索插件开发指南(摘自百度)
  12. [海森推荐] 人工智能:一种现代方法
  13. 不需要appuploader破解版,也能上架
  14. 计算机绘图培训心得,AutoCAD2000软件学习心得总结工程
  15. 3Dmax建模教程详细步骤3D建模速成入门到高级教程 小白必看
  16. 电脑罗盘时钟html怎么设置成桌面,抖音网红款Word Clock罗盘时钟电脑桌面屏保设置教程-完整版...
  17. 张柏芝-从清纯走向堕落
  18. 起底资金盘GGT:一场早有预谋的跑路
  19. Excel批注教学:一键给多个单元格添加相同批注
  20. 产品架构图到底是怎么“画”出来的?

热门文章

  1. RBF:RBF基于近红外光谱的汽油辛烷值含量预测结果对比
  2. TF之DNN:对DNN神经网络进行Tensorboard可视化(得到events.out.tfevents本地服务器输出到网页可视化)
  3. pyhanlp 停用词与用户自定义词典
  4. 深入浅出统计学 第四五章 离散概率的计算与分布
  5. 关于Jdk7与Jdk8对Collections进行分组的区别
  6. Basic Level 1018. 锤子剪刀布 (20)
  7. hdu 1081To The Max
  8. sql getdate() 时间格式设置
  9. RV1108之MiniGui显示参数配置
  10. 现代密码学5.2--域扩张:Merkle-Damgard Transform