貌似和前段时间的一场网络赛一个类型,状态压缩判断走没走过,然后裸bfs到终点。
其实这类题目很简单就是一个bfs模板,无非就是有一些坑,比如这一题。。一个格子可以有多把钥匙汗==
1 #include2 #include 3 #include 4 #include 5 using namespace std; 6 struct dian{ 7 int x,y,state,time; 8 }; 9 int n,m;10 int xx[]={ 1,-1,0,0};11 int yy[]={ 0,0,1,-1};12 int vis[55][55][1100];13 int g[55][55][55][55],num[55][55],key[55][55][55];14 int bfs()15 {16 queue q;17 dian n1,n2;18 int i,j,temp,x;19 while (!q.empty()) q.pop();20 n1.x=1; n1.y=1; n1.time=0; x=0;21 for (i=1;i<=num[1][1];i++) x=(x|(1< n||n2.y<=0||n2.y>m) continue;32 if (g[n1.x][n1.y][n2.x][n2.y]!=-1){33 temp=(1<