题意:
给出蜂巢形状的地图,有障碍物,求走遍蜂巢的回路个数
题解:
多回路的加强版,这题真心难做,很难想到,按照列dp会更简单点。具体看代码
#include<iostream>
#include<math.h>
#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<vector>
#include<map>
using namespace std;
typedef long long lld;
#define oo 0x3f3f3f3f
#define OO 0x3f3f3f3f3f3f3f3f
#define HASH 10007
#define STATE 2000010
#define MAXD 32
int N,M;
int code[MAXD],maze[MAXD][MAXD];
struct HASHMAP
{
int head[HASH],next[STATE],state[STATE],sizes;
lld dp[STATE];
void init()
{
sizes=0;
memset(head,-1,sizeof head);
}
void push(int st,lld ans)
{
int h=st%HASH;
f