USACO 3.2 Magic Squares (msquares) 题解
状态总共只有8!个,不多,用广度优先找最优。我的代码用了个很损的办法:HASH,用HASH表记录从初始达到每一种局面(8!==40320)的最优步数。说到底这也是一种动态规划(记忆化)的思路。而在HASH表中,const BESTSTEP_HASH[]表示了每一种状态的值——用位运算算出来的,每个格占3位,例如0x53997,二进制表示为“001 010 011 100 101 110 1
原创
2008-05-26 10:33:00 ·
580 阅读 ·
0 评论