QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100 Difficulty: [show]

#2213. 騎士

Statistics

有一個 $n$ 列 $m$ 行的棋盤。棋盤上有些格子已損壞。棋盤上有兩個騎士,分別由 Alice 和 Bob 控制。騎士的移動方式由兩個參數 $r$ 和 $c$ 決定。每一步,Alice 或 Bob 可以把自己的騎士移到水平方向相距 $r$ 格、垂直方向相距 $c$ 格的格子,或垂直方向相距 $r$ 格、水平方向相距 $c$ 格的格子。

Alice 和 Bob 輪流行動,由 Alice 先手。每回合,玩家移動自己的騎士。不過,玩家不能把騎士移到已損壞或被另一個騎士佔據的格子。

還有一個額外限制。兩個騎士的局面可以表示為有序對 $(a,b)$,其中 $a$ 是 Alice 所在的格子,$b$ 是 Bob 所在的格子。不允許重複任何先前已出現過的局面。

若玩家在自己的回合無法移動,就會輸掉遊戲。請判斷雙方均採取最佳策略時誰會獲勝。

輸入格式

第一行包含四個整數 $n$、$m$、$r$ 和 $c$($1 \le n,m \le 1000$,$0 \le r<n$,$0 \le c<m$)。

接下來 $n$ 行,每行包含一個長度為 $m$ 的字串。這些行共同描述棋盤。每個格子有以下四種類型:

  • 「@」:該格子已損壞。
  • 「.」:該格子未損壞。
  • 「A」:該格子未損壞,是 Alice 的騎士的起始位置。
  • 「B」:該格子未損壞,是 Bob 的騎士的起始位置。

保證「A」和「B」在棋盤上各恰好出現一次。

輸出格式

輸出獲勝者的名字:「Alice」或「Bob」。

範例

輸入格式 1

2 3 1 2
A@.
B@.

輸出格式 1

Alice

說明

第一步,Alice 把騎士移到格子 $(2,3)$。

第二步,Bob 把騎士移到格子 $(1,3)$。

第三步,Alice 把騎士移回格子 $(1,1)$。

第四步,Bob 不能把騎士移回格子 $(2,1)$,因為這會形成格子的有序對 $(1,1),(2,1)$,與最初的局面相同。Alice 獲勝。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.