模擬 遭遇戰

2021-09-19 08:51:08 字數 1362 閱讀 4441

mxy 沉迷於乙個辣雞遊戲不可自拔。

遊戲地圖是乙個 n*n 的矩形,左上角為(0,0),右下角為(n-1,n-1)。mxy 與對手同時

進入地圖的隨機位置,並以相同速度進行走位。為了隱蔽性,兩人都不會再走自己走過的

格仔。如果兩人向某一方向前進,那麼他們會跑到不能跑為止,當不能跑的時候,mxy 會

向右轉,對手則會向左轉,如果不能跑,則不再動。

現在告訴你兩人進入地圖的初始位置和方向,請算出兩人遭遇的位置。(不遭遇輸出-1)

第一行乙個整數 t,表示資料組數。(1≤t≤10)

接下來 t 組資料,每組資料的第一行包含乙個整數 n。(1≤n≤1000)

第二行包含三個整數 x,y,d,表示 mxy 的初始位置和一開始跑的方向。

(d = 0 表示東,1 表示南,2 表示西,3 表示北)。

第三行與第二行格式相同,但描述的是對手。

t 行,若會遭遇則包含兩個整數,表示她們第一次相遇格仔的座標,否則輸出「−1」。

輸入樣例

2

20 0 0

0 1 2

40 1 0

3 2 0

輸出樣例
-1

1 3

大模擬

#include

#include

#include

using

namespace std;

const

int dx[4]

=;const

int dy[4]

=;int ax[

1025][

1025

],ay[

1025][

1025];

//ax表示mxy跑的圖

//ay表示對手跑的圖

int t,n,xx,xy,xz,yx,yy,yz;

//x*表示mxy的座標和方向

//y*表示對手的座標和方向

bool fx,fy;

//fx表示mxy是否動過

//fy表示對手是否動過

bool

check

(int x,

int y,

int z)

voidmn(

)else

else fx=1;

//否則記錄沒動過}if

(check

(yx+dx[yz]

,yy+dy[yz],1

))//表示對手

else

else fy=1;

//否則記錄沒動過}}

}int

main()

return0;

}

NOIP2016複賽模擬賽2 遭遇戰

問題描述 有一n n矩陣,左上角為 0,0 右下角為 n 1,n 1 有兩個人,給出初始位置及方向,速度相同,兩人都不會走自己走過的路,當兩人向乙個方向前進時會一直走到不能走為止,若不能走,玩家a會右轉,玩家b會左轉,若完全不能動時則停止,問兩人相遇的座標 不能相遇則輸出 1 輸入 第一行t,表示t...

Vijos1404 遭遇戰(最短路)

vijos 顯然可以樹狀陣列之類的東西維護一下 dp 這裡考慮一種最短路的做法。首先對於乙個區間 l,r 顯然可以連邊 l,r 1 那麼最終的問題轉化成了從 s 時刻到 e 時刻的最短路。發現顯然並不在意乙個時間可以被個線段覆蓋,所以連邊 i 1,i 邊權為 0 的邊。include include...

noip模擬賽 遭遇

分析 暴力挺好打的,對於前30 的資料神搜,hi相同的資料將所有的建築按照c從小到大排序,看最多能跳多少,ci 0的資料將所有的建築按照h從小到大排序,列舉起點和終點,看能否跳這麼多,取個max就可以了.這樣70分就到手了.部分分的提示還是比較明顯的,要消除乙個引數的影響,那麼就按照h從小到大排序,...