2023年湘潭大學程式設計競賽 maze bfs

2022-05-01 22:54:19 字數 3549 閱讀 3949

有q個單向傳送陣,每個傳送陣各有乙個入口和乙個出口,入口和出口都在迷宮的格仔裡,當走到或被傳送到乙個有傳送陣入口的格仔時,小明可以選擇是否開啟傳送陣。如果開啟傳送陣,小明就會被傳送到出口對應的格仔裡,這個過程會花費3秒;如果不開啟傳送陣,將不會發生任何事情,小明可以繼續向上下左右四個方向移動。

乙個格仔可能既有多個入口,又有多個出口,小明可以選擇任意乙個入口開啟傳送陣。使用傳送陣是非常危險的,因為有的傳送陣的出口在陷阱裡,如果小明使用這樣的傳送陣,那他就會死亡。也有一些傳送陣的入口在陷阱裡,這樣的傳送陣是沒有用的,因為小明不能活著進入。請告訴小明活著到達目的地的最短時間。

有多組資料。對於每組資料:

第一行有三個整數n,m,q(2≤ n,m≤300,0≤ q ≤ 1000)。

接下來是乙個n行m列的矩陣,表示迷宮。

最後q行,每行四個整數

表示乙個傳送陣的入口在x
1

行y
1

列,出口在x
2

行y
2

列。
如果小明能夠活著到達目的地,則輸出最短時間,否則輸出-1。
示例1

5 5 1

..s..

.....

.###.

.....

..t..

1 2 3 3

5 5 1

..s..

.....

.###.

.....

..t..

3 3 1 2

5 5 1

s.#..

..#..

###..

.....

....t

0 1 0 2

4 4 2

s#.t

.#.#

.#.#

.#.#

0 0 0 3

2 0 2 2

68-1

3bfs,注意,可能通過不止乙個傳送陣

#include #include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#pragma comment(linker, "/stck:1024000000,1024000000")

#define lowbit(x) (x&(-x))

#define max(x,y) (x>=y?x:y)

#define min(x,y) (x<=y?x:y)

#define max 100000000000000000

#define mod 1000000007

#define pi acos(-1.0)

#define ei exp(1)

#define pi 3.1415926535897932384626433832

#define ios() ios::sync_with_stdio(true)

#define inf 0x3f3f3f3f

#define mem(a) ((a,0,sizeof(a)))typedef

long

long

ll;struct

node

;

bool

operator

}ans,pos;

int dir[4][2]=,,,};

intn,m,k,xs,ys;

int dis[306][306

];char a[306][306

];int

xa,xb,ya,yb;

vector

vis[306][306

];int bfs(int u,int

v) }

for(int i=0;i<4;i++)}}

return -1;}

intmain()

}for(int i=0;i)

int cnt=bfs(xs,ys);

printf(

"%d\n

",cnt);

}return0;

}#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#pragma comment(linker, "/stck:1024000000,1024000000")

#define lowbit(x) (x&(-x))

#define max(x,y) (x>=y?x:y)

#define min(x,y) (x<=y?x:y)

#define max 100000000000000000

#define mod 1000000007

#define pi acos(-1.0)

#define ei exp(1)

#define pi 3.1415926535897932384626433832

#define ios() ios::sync_with_stdio(true)

#define inf 0x3f3f3f3f

#define mem(a) ((a,0,sizeof(a)))typedef

long

long

ll;struct

node

;

bool

operator

}ans,pos;

int dir[4][2]=,,,};

intn,m,k,xs,ys;

int dis[306][306

];char a[306][306

];int

xa,xb,ya,yb;

vector

vis[306][306

];int bfs(int u,int

v) }

for(int i=0;i<4;i++)}}

return -1;}

intmain()

}for(int i=0;i)

int cnt=bfs(xs,ys);

printf(

"%d\n

",cnt);

}return0;

}

2023年湘潭大學程式設計競賽

a 時間統計 某個實驗需要統計時間,記錄了實驗開始和結束的時間,計算實驗用了多少秒。第一行輸入乙個整數n,表示樣例個數。接下來每組樣例兩行,表示開始時間和結束時間,格式為xdayhh mm ss,x是乙個整數表示第幾天,0 x 20000,hh表示小時,mm表示分鐘,ss表示秒,保證時間合法,結束時...

2023年湘潭大學程式設計競賽 A題

今晚6點跟隊友去打這個比賽,因為第二天有考試,所以沒有打到結束,打了兩個小時就匆匆回宿舍複習了。題目感覺有難的,有簽到題,直接說題吧 時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 某個實驗需要統計時間,記錄了實驗開...

2023年湘潭大學程式設計競賽 C Boom

時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 緊急事件!戰場內被敵軍埋放了n枚炸彈!我軍情報部門通過技術手段,掌握了這些炸彈的資訊。這些炸彈很特殊,每枚炸彈的波及區域是乙個矩形。第i枚炸彈的波及區域是以點 x i1...