中文題。
【分析】:這題思路建立其實應該主要在對象的操作上,如何求出象走的步數是關鍵,其他的都比較好想到。
對於象,可以將棋盤上的格點分為兩類:第一類是它的橫坐標與縱坐標只差為奇數;第二類是差為偶數。
因為象每走一步,其橫縱坐標增加或減少的絕對值是相等的,所以其橫縱坐標的絕對值只差的奇偶性是不變的。所以如果出發時的橫縱坐標差值是奇或偶,則終點一定是與其出發的點的奇偶性相同的,不相同就輸出INF。而後如果 x==y,則一步就可以到達,如果不等,就2步到達。
詳見代碼:
//220k 0ms #includeusing namespace std; int main() { int T; char begin[3],end[3]; int x,y; cin>>T; while(T--) { cin>>begin>>end; x = abs(begin[0] - end[0]); y = abs(begin[1] - end[1]); if(x == 0&&y == 0) printf("0 0 0 0\n"); else{ // 王的步數 if(x