SGU 139.Help Needed!
题意:
判断15数码问题是否有解。
如果0的偏移量和逆序对个数同奇偶则无解。
因为目标状态的偏移量为0,逆序对为15,而0移动的时候偏移量±1,逆序对的改变量为也为奇数。
这就使得偏移量和逆序对数始终不是同奇偶。
更多证明:http://blog.csdn.net/hnust_xiehonghao/article/details/7951173
#include <stdio.h>
using namespace std;
int a[16], res;
int main()
{
for (int i = 0; i < 16; ++i)
{
scanf("%d", &a[i]);
if (!a[i]) res = 6 - (i % 4) - i / 4;
}
for (int i = 0; i < 15; ++i)
for (int j = i + 1; j < 16; ++j)
if (a[i] > a[j]) res++;
if (res & 1) printf("YES");
else printf("NO");
return 0;
}