【洛谷 P5422】【USACO19OPEN】Compound Escape P(轮廓线dp / 最小表示法)
传送门 首先看数据范围和题就知道是轮廓线 d p dp d p 最小表示法压连通性 但是由于脑残 还是 w a + t l e wa+tle w a + t l e 了 把每次转移的预处理出来 每次可以直接枚举 2 k 2^k 2 k 横边情况和 2 k − 1 2^{k-1} 2 k − 1 竖边情况转移 # include <bits/stdc++.h> using namespace std ; # define cs const # define re register # define pb push_back # define pii pair<int,int> # define ll long long # define fi first # define se second # define bg begin cs int RLEN = 1 << 20 | 1 ; inline char gc ( ) { static char ibuf [ RLEN ] , * ib , * ob ; ( ib == ob ) && ( ob = ( ib = ibuf ) + fread ( ibuf , 1 , RLEN , stdin ) ) ; return ( ib == ob ) ? EOF : * ib ++ ; } inline int read ( ) {