分析:

当N为奇数时奇偶同性可互达,N为偶数时,逆序数之和sum加上空格所在行距目标空格行的距离dis之和要和终点状态逆序数同奇偶

View Code

#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
const int N = 300+10;
int s[N*N],g[N*N];
#define _cp(a,b) ((a)<=(b))
int _tmp[N*N];
int inv(int n,int* a){int l=n>>1,r=n-l,i,j;int ret=(r>1?(inv(l,a)+inv(r,a+l)):0);for (i=j=0;i<=l;_tmp[i+j]=a[i],i++)for (ret+=j;j<r&&(i==l||!_cp(a[i],a[l+j]));_tmp[i+j]=a[l+j],j++);memcpy(a,_tmp,sizeof(int)*n);return ret;
}
int main()
{int n;while(scanf("%d",&n)==1 && n){int num=0;bool flag=true;for(int i=0;i<n*n;i++){scanf("%d",&g[i]);if(flag && g[i]!=0)num++;if(g[i]==0)flag=false;}int temp=inv(n*n,g);temp-=num;//0的逆序数不考虑if(!(n&1))//若n为偶数,则要加上空格所在行距目标空格行的距离dis之和temp+=(n-1-(num/n));if(temp&1)puts("NO");else puts("YES");}return 0;
}

转载于:https://www.cnblogs.com/nanke/archive/2012/04/13/2445266.html

hdu 3600 Simple Puzzle (判断N 数码是否有解)相关推荐

  1. POJ - 2893 M × N Puzzle(n*m数码问题+逆序对结论)

    题目链接:点击查看 题目大意:给出一个n*m的数码问题,问是否能到达最终状态 题目分析:对于数码问题,我们先一步一步分析,先简单看一下定义: 八数码的问题描述为: 在3×3的棋盘上,摆有八个棋子,每个 ...

  2. hdu 5285(染色法判断二分图)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5285 解题思路:很明显的是二分图的判定,用染色法即可. 不过这题有一个坑,当n<=1和m=0时要 ...

  3. hdu 2444(二分图的判断以及求最大匹配)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2444思路:首先要判断能否构成二分图,用bfs对当前点u染色,对u的邻接点v的颜色进行判断,如果为染色, ...

  4. hdu 4662 MU Puzzle

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4662 MU Puzzle Time Limit: 2000/1000 MS (Java/Others) ...

  5. hdu 44313391 Mahjong 枚举,判断

    hdu 4431 Mahjong 3391也是差不多的题,但是没有字牌应该简单一点. 我说这个题是一个暴力应该没什么问题,就是判断的时候非常麻烦. 题意 说说打的是日本麻将,不过好像中国的麻将也都是这 ...

  6. hdu A Simple Math Problem

    Problem Description Lele now is thinking about a simple function f(x). If x < 10 f(x) = x. If x & ...

  7. HDU Redraw Beautiful Drawings 判断最大流是否唯一解

    点击打开链接 Redraw Beautiful Drawings Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 ...

  8. 人生第一个快速幂的题(HDU - 1097--A hard puzzle )

    题意: 最简单的快速幂.给你两个数n和m,求n^m的最后一位: 解题思路: 额,快速幂就很简单了,这里只要最后一位可以一对每次运算都%10: 代码: #include<cstdio> #i ...

  9. 【找规律】HDU 4662——MU Puzzle

    来源:点击打开链接 这个题目的来源是人工智能领域MU猜想.比赛的时候也参考了相关资料,可是最后差一点没有把规律推出来. 注意到以下几个性质.第一,MI怎么变换M永远只能在第一位.第二,因为变换时只能在 ...

最新文章

  1. 微信小程序云开发用户身份登录_微信小程序开发用户授权登录(下)
  2. pytorch 常用问题解决
  3. 关于python那些事_Python 入门你必须知道的那些事
  4. Android最佳性能实践(一):合理管理内存
  5. Boost:获取随机数的实例
  6. java 下载二进制文件_使用Java从Github下载二进制文件
  7. ORA-01756: quoted string not properly terminated
  8. ucosii中消息队列、消息邮箱、信号量的区别
  9. Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】
  10. 黑大选修计算机模拟物理学,黑龙江大学学分制选课指南.doc
  11. go产生平台相关的0xFFFF
  12. C语言抽奖程序随机实现,简单的号码抽奖程序 - oixxan的个人博客 - OSCHINA - 中文开源技术交流社区...
  13. 通俗地讲解傅立叶分析和小波分析间的关系
  14. 如何成为优秀的程序员?
  15. 华为设备如何将接口配置为中继模式_华为无线路由器怎么设置中继
  16. 计算机音乐大学排名,2019音乐类大学排行榜_2019年世界十大权威大学排名报告发布,中国891所高...
  17. python数据可视化之美pdf_数据之美——Python数据可视化1
  18. Gungho重点工作事项督办督查跟踪管理方案
  19. 淡墨写韵,不守起承转合
  20. js两种拼接字符串方法

热门文章

  1. linux raid5卷,Linux逻辑卷及RAID5的创建
  2. bat 调用class文件_拯救写框架的程序员!用字节码替代反射,实现任意函数调用...
  3. java 集合 总结 表_java-集合总结
  4. python解析http数据包_python 3 处理HTTP 请求的包
  5. “21天好习惯”第一期-9
  6. 充电速度公式_手机充电效率计算
  7. git remote命令入门
  8. Hbase Region拆分入门
  9. Windows 上安装 Scala
  10. 首座生态厕所亮相兰州 生物降解“三年不臭”