街機爭霸 三維 平面 時間 BFS

2021-10-03 11:30:51 字數 1398 閱讀 1565

2020牛客寒假演算法基礎集訓營5 g-街機爭霸

關鍵點:

殭屍的座標需要三維 平面+時間 利用殭屍移動的週期性檢查是否存在殭屍

思路:bfs

這和之前做的bfs最大的區別在於,有殭屍干擾,且殭屍會動,但我們不難發現殭屍的移動是有一定的週期的,週期為2k-2,且人要一直跑不能停,那人跑的步數就可以等效為時間,我們要在原先bfs的基礎上加上一維座標表示時間,因為殭屍的移動是符合週期的,我們可以取餘,初始化殭屍移動的週期。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

typedef

long

long ll;

typedef pair<

int,

int>p;

const

double eps =

1e-10

;const

int inf =

0x3f3f3f3f

;const ll maxn =

1e6+5;

const

int n =

500+5;

struct node

;int n,m,p,k,mod;

char a[n]

[n];

bool no[n]

[n][n]

;int vis[n]

[n];

int d[n]

[n];

int dx[4]

=;int dy[4]

=;intbfs

(int stx,

int sty));

while

(!q.

empty()

));}

}return-1

;//如果不可能的話就返回-1

}int

main()

int x,y;

char op[10]

;for

(int i=

1;i<=p;i++)}

else

if(op[0]

=='l')}

else

if(op[0]

=='u')}

else

if(op[0]

=='d')}

}for

(int i=

1;i<=n;i++)}

}return0;

}

三維幾何 平面

平面的表示。通常用點法式 p0,n 來描述乙個平面。其中點p0是平面的乙個點,向量n是平面的法向量。每個平面把空間分成了兩個部分,我們可以用點法式表示其中乙個半空間。具體是哪乙個呢?是這個法向量所背離的那乙個 即法向量指向遠離半空間的方向 既然是法向量,n就垂直於平面上的所有直線。換句話說,平面上的...

bfs 三維標記

做訓練賽遇到的一道題,感覺很好。大致題意 現在給你乙個地圖n m,代表是空格子,代表是有柱子阻隔。現在你站在a點,要走到b點。走的時候要遵循乙個規則 必須走相鄰的格仔,如果相鄰的格仔為有柱子格仔,那麼這個格仔與有柱子的格仔相鄰的邊 如果乙個有柱子的格仔的兩條或者多條不同的邊 了,那麼這個格仔就會變成...

腫瘤診斷 三維BFS

腫瘤診斷 在診斷腫瘤疾病時,計算腫瘤體積是很重要的一環。給定病灶掃瞄切片中標註出的疑似腫瘤區域,請你計算腫瘤的體積。輸入第一行給出4個正整數 mm nn ll tt,其中mm和nn是每張切片的尺寸 即每張切片是乙個m times nm n的畫素矩陣。最大解析度是1286 times 1281286 ...