本文同步发表于洛谷。
是个逆天搜索。
最开始:爆搜,启动!
然后 TLE 到飞起。
赛后:我【数据删除】这么简单的吗?!
dfs 每个位置,试着把没放过的块放到以这个位置为左上角的区域内里。
好了没了,就是这么简单!
对了记得这个块可以旋转!
[code]#include#include#define N 1000010#define MOD 998244353#define esp 1e-8#define INF 999999999999999999#define LL long long#define rep(i,a,b,g) for(LL i=a;i=b;i-=g)#define repn(i,a,b,g) for(LL i=a;ib;i-=g)#define pll pair#define mkp(x,y) make_pair(x,y)#define i128 __int128#define lowbit(x) ((x)&(-(x)))#define lc (uw; rep(i,1,n,1)cin>>a>>b; rep(i,n+1,2*n,1) { a=b[i-n]; b=a[i-n]; } dfs(1,1); cout |