CodeForces-38B-Chess枚舉+思維
阿新 • • 發佈:2018-02-25
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枚舉+思維