结论:拼图可解问题:当前空白的行距的奇偶性与当前序列的逆序数的奇偶性的抑或值来判断
代码:
#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<queue> #include<stack> #include<set> #include<map> #include<vector> #include<cmath> const int maxn=1e5+5; typedef long long ll; using namespace std; int a[25]; int cc[25]; int main() { int T; cin>>T; int k=0; while(T--) { int cnt=0; for(int t=0;t<4;t++) { for(int j=0;j<4;j++) { scanf("%d",&a[t*4+j]); if(a[t*4+j]!=0) { cc[cnt++]=a[t*4+j]; } if(a[t*4+j]==0) { k=t; } } } int sum=0; for(int t=0;t<15;t++) { for(int j=t+1;j<15;j++) { if(cc[j]<cc[t]) { sum++; } } } if(((3-k)%2)^(sum%2)==0) { puts("Yes"); } else { puts("No"); } } return 0; }
Just an Old Puzzle(2019多校1007)
原文:https://www.cnblogs.com/Staceyacm/p/11278588.html