可以将棋子分为9种类型.且可以通过合并使得两个不同种类棋子转换为另一种棋子(不过要注意棋盘大小,有的时候硬要合并会到棋盘外面,可以先把棋盘全部转换,然后枚举每一个棋子的转换).然后把状态压成一个十位的十进制数就可以记忆化搜索了. #include<bits/stdc++.h> using namespace std; #define LL long long #define id(i,j) ((i-1)*3+j-1); struct point{ int a,b; }p[]; ][],tot[…