WOJ-477 Hong Kong Journalists
阿新 • • 發佈:2019-01-07
點選這裡檢視題目
這裡有個結論——象棋馬走日,將馬放在至少3x4大小的棋盤上的任意一個位置,馬能夠遍歷棋盤上的任意一個位置。不信可以自己畫個棋盤試試。(反正我也不知道怎麼證明,一行行增大棋盤發現的結論,大概可以用數學歸納法。)
而3x3的棋盤,將馬放在邊上,正中間那個點是無論如何遍歷不到的。至於2xM的棋盤,馬到達能夠遍歷到的點的路線是唯一的。
接下來是重點:
大前提:整個棋盤能夠被馬遍歷。
①馬走到其45°方向上的任意一個格子!步數一定是偶數!
②馬走到相鄰格子上!步數一定是奇數!
(真心別問我結論怎麼來的,大概是象棋下多了。)
(題外話——一個小技巧教你下象棋時高效用馬/防馬:走到與馬形成3x3正方形的對角線上,這樣,對方的馬要繼續抓你的子,至少需要走3步才能把你那個字納入攻擊範圍,對方基本會放棄追殺……)
#include<iostream>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
if(n>m)
{
n=n^m;m=n^m;n=n^m;
}
if(n<2)
{
cout<<-1<<endl;
}
else if(n==2)
{
if(m%3!=0||(m/3)%2!=1)cout<<-1<<endl;
else cout<<1<<endl;
}
else
{
cout<<((m-n)%2)<<endl;
}
}