奇数码问题


title: 奇数码问题
date: 2024-01-05 11:52:04
tags: 逆序对
cstefories: 算法进阶指南

题目大意

在这里插入图片描述

解题思路

将二维转化为一维,求他的逆序对,如果逆序对的奇偶性相同,则能够实现。

代码实现

#include<iostream>
#include<string.h>
#include<cstring>
#include<unordered_map>
#include<iomanip>
#include<vector>
#include<algorithm>
#include<math.h>
#include<queue>
#define int long long#define bpt __builtin_popcountllusing namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> PII;const int N = 2E6 + 10, mod = 998244353;ll gcd(ll a, ll b) { return b ? gcd(b, a % b) : a; }const int MOD = 998244353;priority_queue<int, vector<int>>l;//大根堆
priority_queue<int, vector<int>, greater<int>> r;//小根堆int a[N], b[N],c[N];
int cnt = 0;
int n;void merge(int l,int r,int *a)
{if (l >= r) return;int mid = l + r >> 1;merge(l, mid, a);merge(mid + 1, r, a);int i = l, j = mid + 1;for (int k = l; k <= r; k++) {if (i <= mid && a[i] <= a[j] || j > r) {b[k] = a[i++];}else {cnt += mid - i + 1;b[k] = a[j++];}}for (int k = l; k <= r; k++) {a[k] = b[k];}
}
signed main()
{int n;while (cin >> n) {int ok = 0;for (int i = 1; i <= n * n; i++) {int x; cin >> x;if (x == 0) ok = 1;else a[i - ok] = x;}ok = 0;for (int i = 1; i <= n * n; i++) {int x; cin >> x;if (x == 0) ok = 1;else c[i - ok] = x;}cnt = 0;merge(1, n * n, a);int ans = cnt;cnt = 0;merge(1, n * n, c);if ((ans & 1) == (cnt & 1)) puts("TAK");else puts("NIE");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/323292.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习框架TensorFlow2快速入门教程

01 深度学习框架TensorFlow2快速入门教程 目录结构 01 概述 02 准备OVF虚拟机镜像 03 导入Ubuntu22的初始化环境 04 使用VMWare拍摄快照进行备份 05 Docker环境的测试和使用 06 安装Nvidia容器工具包 07 GPU支持的TensorFlow的环境搭建和踩坑 08 拉取非GPU支持的TensorFlow镜…

vite 如何设置 pwa,让网页类似 app 那样运行,使用插件 vite-plugin-pwa

vite 如何设置 pwa&#xff0c;让网页类似 app 那样运行&#xff0c;使用插件 vite-plugin-pwa 一、概述 情况还是那么个情况&#xff0c;还是原来的项目 vue2 改为 vitetsvue3 遇到的问题&#xff0c;今天这个问题是如何 在 Vite 环境下设置 PWA。 PWA 就是网页应用可以像 a…

外贸SOHO建站产品图来源?海洋建站教程?

外贸SOHO建站如何处理产品图片&#xff1f;外贸网站设计怎么做&#xff1f; 在当今的互联网时代&#xff0c;外贸SOHO建站已成为越来越多人的选择。然而&#xff0c;对于许多新手SOHO来说&#xff0c;如何获取高质量的产品图却是一个不小的难题。海洋建站将为大家详细解析外贸…

Python元组与字典的基础介绍

元组(tuple) 在Python中,元组是不可变的有序元素的序列 即创建后不可以被修改 创建方式val_name ([val],[val].....) #----------声明------------ tuple_1 (1,2,3) print(tuple_1)元组的运算 虽然说元组的额元素是不可以更改的,但元组之间可以使用,,*号进行运算,运算后会…

正则表达式的语法

如果要想灵活的运用正则表达式&#xff0c;必须了解其中各种元素字符的功能&#xff0c;元字符从功能上大致分为&#xff1a; 限定符 选择匹配符 分组组合和反向引用符 特殊字符 字符匹配符 定位符 我们先说一下元字符的转义号 元字符(Metacharacter)-转义号 \\ \\ 符号…

promethues grafana 安装和使用

文章目录 1、promethues安装2、node-exporter安装3、grafana安装4、配置promethues监控node节点5、grafana操作外传 Docker 镜像下载地址&#xff1a; https://hub.docker.com 比较好的hub.docker.com///-- https://hub.docker.com/u/bitnami grafana监控面板&#xff1a;https…

新手教师的三个阶段

当你踏入教育行业&#xff0c;成为一名新手教师时&#xff0c;可能会感到迷茫和不知所措。但是&#xff0c;请相信&#xff0c;每一位优秀教师都曾经是新手&#xff0c;他们也有过类似的感受。本文将为你揭示新手教师的三个成长阶段&#xff0c;帮助你更快地适应教育工作&#…

第五周:深度学习知识点回顾

前言&#xff1a; 讲真&#xff0c;复习这块我是比较头大的&#xff0c;之前的线代、高数、概率论、西瓜书、樱花书、NG的系列课程、李宏毅李沐等等等等…那可是花了三年学习佳实践下来的&#xff0c;现在一想脑子里就剩下几个名词就觉得废柴一个了&#xff0c;朋友们有没有同感…

SSM电影售票管理系统----计算机毕业设计

项目介绍 管理员角色包含以下功能&#xff1a; 管理员登陆,管理员用户管理,新闻公告增删改查,电影类型增删改查,影院信息增删改查,电影信息增删改查,订单查询,电影评价管理等功能。 用户角色包含以下功能&#xff1a; 用户首页,用户登录,查看电影详情,加入购物车,下单电影票,…

《软件项目接口安全设计规范》

1.token授权机制 2.https传输加密 3.接口调用防滥用 4.日志审计里监控 5.开发测试环境隔离&#xff0c;脱敏处理 6.数据库运维监控审计 软件全套文档&#xff1a;软件开发全套资料-CSDN博客

Oracle笔记-查看表已使用空间最大空间

目前以Oracle18c为例&#xff0c;主要是查这个表USER_SEGMENTS。 在 Oracle 18c 数据库中&#xff0c;USER_SEGMENTS 是一个系统表&#xff0c;用于存储当前用户&#xff08;当前会话&#xff09;拥有的所有段的信息。段是 Oracle 中分配存储空间的逻辑单位&#xff0c;用于存…

【CMake】5. 单项目多模块添加第三方依赖示例工程

CMake 示例工程代码 https://github.com/LABELNET/cmake-simple 单项目单模块示例工程 https://github.com/LABELNET/cmake-simple/tree/main/simple-mod-deps 这里引入 C gRPC 依赖&#xff0c;进行示例 1. 多模块工程 第三方依赖 CMake 多模块工程&#xff0c;这是一个…