CodeForces - 173B Chamber of Secrets



点击打开链接



题意:给你个n*m的地图, a[n][m]是蛇起始是向左看的。a[1][1]是入口,起始是向右看的。

  ‘#’是能让穿过的目光发散成四个方向。

题解: 

横着走到的是竖着走的坐标,

竖着走到的是横着走的坐标。

起点和终点肯定是横着到达的,所以从dis[1]->dis[n];

竖着的坐标都+n。

然后跑一边最短路。


最后跑了300左右, 大佬们都是30.。。。。


#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
const int inf=0xffffff;
const int maxn=2005;
int n,m;
vectorvec[maxn];
int vis[maxn];
int dis[maxn];
char a[maxn][maxn];
void spfa()
{
   for(int i=1;i<=maxn;++i) dis[i]=inf;
   memset(vis,0,sizeof(vis));
   queueque;
   que.push(1);
   vis[1]=1;
   dis[1]=0;
   while(!que.empty()){
       int u=que.front();
       que.pop();
       for(int i=0;i

哇,,,这样就62 了。。。以后我都这样输入了,,,,这样更快啊


#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
const int inf=0xffffff;
const int maxn=2005;
int n,m;
vectorvec[maxn];
int vis[maxn];
int dis[maxn];
char a[maxn][maxn];
void spfa()
{
   for(int i=1;i<=maxn;++i) dis[i]=inf;
   memset(vis,0,sizeof(vis));
   queueque;
   que.push(1);
   vis[1]=1;
   dis[1]=0;
   while(!que.empty()){
       int u=que.front();
       que.pop();
       for(int i=0;i


你可能感兴趣的:(图论)