天天看點

51nod oj 1066 Bash遊戲 1067 Bash遊戲 V2【巴什博奕】

題目連結:​​1066​​

題目連結:​​1067​​

​​1066 Bash遊戲​​

基準時間限制:1 秒 空間限制:131072 KB 分值: 0 

​​難度:基礎題​​

 收藏

 關注

有一堆石子共有N個。A B兩個人輪流拿,A先拿。每次最少拿1顆,最多拿K顆,拿到最後1顆石子的人獲勝。假設A B都非常聰明,拿石子的過程中不會出現失誤。給出N和K,問最後誰能赢得比賽。

例如N = 3,K = 2。無論A如何拿,B都可以拿到最後1顆石子。

Input

第1行:一個數T,表示後面用作輸入測試的數的數量。(1 <= T <= 10000)第2 - T + 1行:每行2個數N,K。中間用空格分隔。(1 <= N,K <= 10^9)

Output

共T行,如果A獲勝輸出A,如果B獲勝輸出B。

Input示例

43 24 27 3

8 3

Output示例

BAAB

代碼:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
  int t,a,b;
  scanf("%d",&t);
  while (t--)
  {
    scanf("%d%d",&a,&b);
    if (a<=b||a%(b+1))
    printf("A\n");
    else
    printf("B\n");
  }
  return 0;
}      

​​1067 Bash遊戲 V2​​

基準時間限制:1 秒 空間限制:131072 KB 分值: 10 

​​難度:2級算法題​​

 收藏

 關注

有一堆石子共有N個。A B兩個人輪流拿,A先拿。每次隻能拿1,3,4顆,拿到最後1顆石子的人獲勝。假設A B都非常聰明,拿石子的過程中不會出現失誤。給出N,問最後誰能赢得比賽。

例如N = 2。A隻能拿1顆,是以B可以拿到最後1顆石子。

Input

第1行:一個數T,表示後面用作輸入測試的數的數量。(1 <= T <= 10000)第2 - T + 1行:每行1個數N。(1 <= N <= 10^9)

Output

共T行,如果A獲勝輸出A,如果B獲勝輸出B。

Input示例

3234

Output示例

BAA

規律:

0 B

1 A

2 B

3 A

4 A

5 A

6 A

7 B

8 A

9 B

10 A

11 A

12 A

13 A

7個一循環----

代碼“:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
    int t,n;scanf("%d",&t);
    while (t--)
    {
        scanf("%d",&n);
        n%=7;
        if (n==0||n==2)
            printf("B\n");
        else
            printf("A\n");
    }
    return 0;
}