1. 程式人生 > >CodeForces-38B-Chess枚舉+思維

CodeForces-38B-Chess枚舉+思維

turn 可能 string code ble 註意 cin 一個 namespace

CodeForces-38B-Chess


這是一道與下象棋有關的題目,題意是給你一個車和馬的坐標,然後再給你一個馬,讓你判斷最後三者都不會被吃掉的可能性,註意的是三者是三個獨立的個體。
這道題要知道一點下象棋的規則;馬走“日”字, 車可以直線隨便走,然後判斷車和馬的八個方向和車的行和列即可。

這裏有個技巧,馬的八個方向可以用兩點距離為5的根號判斷;
註意rook是車,knight是馬

#include <cstdio>
#include <iostream>
#include <string>
using namespace std;
string s1,s2;
int main(){ cin>>s1>>s2; int x = s1[0]-a+1; int y = s1[1]-0; int a = s2[0]-a+1; int b = s2[1]-0; int cnt = 0; for(int i=1;i<=8;i++) { for(int j=1;j<=8;j++) { if(i==a&&j==b)continue; if(i==x||j==y)continue
; if((i-a)*(i-a)+(j-b)*(j-b)==5)continue; if((i-x)*(i-x)+(j-y)*(j-y)==5)continue; cnt++; } } cout<<cnt<<endl; return 0; }

CodeForces-38B-Chess枚舉+思維