码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-07-31 23:37:07      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:stream   color   相同   name   因此   scanf   std   转化   不能   

题意:

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

题解:

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

因此统计逆序对即可。

#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 逆序对

标签:stream   color   相同   name   因此   scanf   std   转化   不能   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!