首页 > 其他 > 详细

hdu多校第四场 1007 (hdu6620) Just an Old Puzzle 逆序对

时间:2019-08-01 01:17:52      阅读:112      评论:0      收藏:0      [点我收藏+]

题意:

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

题解:

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

因此统计逆序对即可。

#include<iostream>
using namespace std;
int main(){
    int t;
    scanf("%d",&t);
    while(t--){
        int a[20];
        int kg;
        for(int i=1;i<=16;i++){
            scanf("%d",&a[i]);
            if(a[i]==0)kg=i;
        }
        while(kg%4){
            swap(a[kg],a[kg+1]);
            kg++;
        }
        while(kg%16){
            swap(a[kg],a[kg+4]);
            kg+=4;
        }
        int nxd=0;
        for(int i=1;i<15;i++){
            for(int j=i+1;j<=15;j++){
                if(a[j]<a[i])nxd++;
            }
        }
        if(nxd%2==0)printf("Yes\n");
        else printf("No\n");
    }
    return 0;
}

 

hdu多校第四场 1007 (hdu6620) Just an Old Puzzle 逆序对

原文:https://www.cnblogs.com/isakovsky/p/11279830.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!