题意:

给你一个数字拼图,问你数字拼图能否能复原成原来的样子。

题解:

数字拼图的性质是,逆序数奇偶相同时,可以互相转化,逆序数奇偶不同,不能互相转化。

因此统计逆序对即可。

#include<iostream>
using namespace std;
int main(){
int t;
scanf("%d",&t);
while(t--){
int a[];
int kg;
for(int i=;i<=;i++){
scanf("%d",&a[i]);
if(a[i]==)kg=i;
}
while(kg%){
swap(a[kg],a[kg+]);
kg++;
}
while(kg%){
swap(a[kg],a[kg+]);
kg+=;
}
int nxd=;
for(int i=;i<;i++){
for(int j=i+;j<=;j++){
if(a[j]<a[i])nxd++;
}
}
if(nxd%==)printf("Yes\n");
else printf("No\n");
}
return ;
}
05-08 08:17