目录
猛兽军团1是八向
而这题只有四向
但是这道题有地形限制
所以在求每一行的合法状态时,会发现几乎每行它的合法状态都不同
因此我们就需要新设置一个数组:num用来存储每行合法状态所对应的二进制
值得注意的是:map=(map1
为啥要取反呢?
因为下面判断一个状态是否合法的时候,是要用到“&”的
这个&,只能看出来是否有重合的1,看不出来0
那就这样,把贫瘠的土地想象成土地上放置有障碍物(盖了房子),表示为1
没盖房子的表示为0
如果一个奶牛的站位和房子重合或者和左移后的另一只奶牛重合
那么这种状态不合法
剩下的就和猛兽军团1差不多了
这个是我自己写的代码,提交AC了[code]#includeusing namespace std;int map[15],sum[15],num[15][250],f[15][250];int main(){ int n,m; cin>>n>>m; for(int i=1;ix; map=(map |