本文共 658 字,大约阅读时间需要 2 分钟。
逐行进行。详细看注释。跑出4s。Q_Q
#include#define debug(_x) cout<<#_x<<":"<<_x< >=1; s>>=1; } return !(cnt&1);}int main(){ int T; cin.tie(0); cout.tie(0); ios::sync_with_stdio(false); while(cin>>n>>m && n){ f0=f[0];f1=f[1]; fill(f0,f0+(1<
逐格进行,竖放和不放其实可以写在一起f1[s^(1<<j)]+=f0[s]
。下面图中,红线为轮廓线,即已决策状态和未决策状态的交界线。dp的状态就是轮廓线上的方格是否已放。跑出15ms。^ _ ^
#include#define debug(_x) cout<<#_x<<":"<<_x< >n>>m && n){ f0=f[0];f1=f[1]; fill(f0,f0+(1< >j)&1)){ // 上一行j位置为空,需要竖着放 f1[s^(1<
转载地址:http://hgkzi.baihongyu.com/