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 ...