NOJ1002將軍問題

2022-05-30 09:45:08 字數 2867 閱讀 2072

各種棋子的走法如下:

二另外,在乙個局面中,如果一方棋子能夠走到的位置有對方將(帥)的存在,那麼該局面就稱為將軍局面,我們的任務就是找出這樣的局面。根據上述規則,我們很容易就能推斷出只有以下幾種方式才會造成將軍局面:

將(帥)照面。即將和帥在同一直線上。

馬對將(帥)的攻擊。(注意馬有蹩腳)

車對將(帥)的攻擊。

炮對將(帥)的攻擊。(注意炮要隔一子)

過河兵對將(帥)的攻擊。

輸入輸出

如果存在將軍局面,則輸出"yes"。反之,輸出"no"。

樣例輸入

2

8 6 4 2 1 3 5 7 9

0 0 0 0 0 0 0 0 0

0 10 0 0 0 0 0 11 0

12 0 13 0 14 0 15 0 16

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

28 0 29 0 30 0 31 0 32

0 26 0 0 0 0 0 27 0

0 0 0 0 0 0 0 0 0

24 22 20 18 17 19 21 23 25

8 6 4 2 1 3 5 0 9

0 0 0 0 0 0 0 0 0

0 10 0 0 0 0 7 11 0

12 0 13 0 14 0 15 0 16

0 0 0 0 0 0 0 0 0

0 0 0 0 27 0 0 0 0

28 0 29 0 30 0 31 0 32

0 26 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

24 22 20 18 17 19 21 23 25

樣例輸出

no

yes

提示

**

timebug

沒啥好解釋,直接模擬。
1 #include 2 #include 3 #include 4 #include 5

using

namespace

std;

6int borad[10][10];7

int f[4][2]=,ffma[8][2]=;

8int

hx,hy,bx,by;

9void

init()

101819}

20bool jug(int x,int

y)21

25bool is_che(int x,int

y)26

37 } p=y,q=x;

38while(1

)39

47 } p=y,q=x;

48while(1

)49

57 } p=y,q=x;

58while(1

)59 67}

68return

false;69

}70bool is_ma(int x,int

y)7183}

84}85return

false;86

}87bool is_pao(int x,int

y)88

101 } p=y,q=x;shan=0

;102

while(1

)103

111 } p=y,q=x;shan=0

;112

while(1

)113

121 } p=y,q=x;shan=0

;122

while(1

)123

131}

132return

false

;133

}134

bool is_jiang(int x,int

y)135

146else

if(borad[x][y]==17

)147

150}

151}

152int xx=x,yy=y;

153while(1

)154

163 }xx=x,yy=y;

164while(1

)165

174}

175return

false

;176

}177

bool check(int x,int

y)178

183if(borad[x][y]==6||borad[x][y]==7||borad[x][y]==22||borad[x][y]==23

)184

187if(borad[x][y]==10||borad[x][y]==11||borad[x][y]==26||borad[x][y]==27

)188

191if(borad[x][y]==1||borad[x][y]==17

)192

195return

false

;196

}197

void

solve()

198

205}

206if(flag)printf("

yes\n");

207else printf("

no\n");

208}

209int

main()

210

217return0;

218 }

NOJ1002 演算法實驗一 歸併排序

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述給定乙個數列,用歸併排序演算法把它排成公升序。輸入第一行是乙個整數n n不大於10000 表示要排序的數的個數 下面一行是用空格隔開的n個整數。輸出輸出排序後的數列,每個數字佔一行。輸入樣例 53 2 1 4 5 輸出樣例12 ...

遞迴分治篇 歸併排序NOJ1002

時限 1000ms 記憶體限制 10000k 總時限 3000ms 給定乙個數列,用歸併排序演算法把它排成公升序。第一行是乙個整數n n不大於10000 表示要排序的數的個數 下面一行是用空格隔開的n個整數。輸出排序後的數列,每個數字佔一行。二路歸併 自底向上 自頂向下 為什麼覺得自頂向下就是比自底...

拜占庭將軍問題

前進中的可信計算 拜占庭將軍問題 閔應驊 乙個可信的計算機系統必須容忍乙個或多個部件的失效。失效的部件可能送出相互矛盾的資訊給系統的其他部件。這正是目前網路安全要對付的情況,如銀行交易安全 存款安全。美國2001 9 11遭恐怖襲擊之後,大家普遍認識到銀行的異地備份非常重要。紐約的一家銀行可以在東京...