首页 技术 正文
技术 2022年11月23日
0 收藏 381 点赞 3,698 浏览 1280 个字

Problem DescriptionYou are given a 4 × 4 grid, which consists of 15 number cells and an empty cell.
All numbers are unique and ranged from 1 to 15.
In this board, the cells which are adjacent with the empty cell can move to the empty cell.
Your task is to make the input grid to the target grid shown in the figure below.
In the following example (sample input), you can get the target grid in two moves.
Just an Old Puzzle(2019多校1007) InputThe first line contains an integer T (1 <= T <= 10^5) denoting the number of test cases.
Each test case consists of four lines each containing four space-separated integers, denoting the input grid. 0 indicates the empty cell. OutputFor each test case, you have to print the answer in one line.
If you can’t get the target grid within 120 moves, then print ‘No’, else print ‘Yes’. Sample Input2
1 2 3 4
5 6 7 8
9 10 0 12
13 14 11 15
1 2 3 4
5 6 7 8
9 10 11 12
13 15 14 0 Sample OutputYes No

结论:拼图可解问题:当前空白的行距的奇偶性与当前序列的逆序数的奇偶性的抑或值来判断

代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
#include<stack>
#include<set>
#include<map>
#include<vector>
#include<cmath>const int maxn=1e5+;
typedef long long ll;
using namespace std;
int a[];
int cc[];
int main()
{
int T;
cin>>T;
int k=; while(T--)
{
int cnt=;
for(int t=;t<;t++)
{
for(int j=;j<;j++)
{
scanf("%d",&a[t*+j]);
if(a[t*+j]!=)
{
cc[cnt++]=a[t*+j];
}
if(a[t*+j]==)
{
k=t;
}
}
}
int sum=;
for(int t=;t<;t++)
{
for(int j=t+;j<;j++)
{
if(cc[j]<cc[t])
{
sum++;
}
}
} if(((-k)%)^(sum%)==)
{
puts("Yes");
}
else
{
puts("No");
}
}
return ;
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,024
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,514
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,362
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,143
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,776
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,854