poj 1657 Distance on Chessboard
简单题代码却写了这么长,惭愧
#include<iostream>
using namespace std;
#include<math.h>
int min(int x,int y)
{
return x>y? y:x;
}
int max(int x,int y)
{
return x>y? x:y;
}
int main()
{
int x;
char a[3],b[3];
int map[9][9];
int left1,right1,left2,right2;
while(cin>>x)
{
// memset(map,0,sizeof(map));
int sign=1;
for(int i=1;i<=8;i++)
{
for(int j=1;j<=8;j++)
{
if(sign==1)
{
map[i][j]=0;
if(j==8)
sign=1;
else
sign=0;
}
else
{
map[i][j]=3;
if(j==8)
sign=0;
else
sign=1;
}
}
}
while(x--)
{
int cou=0;
cin>>a;
cin>>b;
left1=8-(a[0]-97);
right1=a[1]-48;
// cout<<right1;
// system("pause");
left2=8-(b[0]-97);
right2=b[1]-48;
cou+=min(abs(left1-left2),abs(right1-right2));
// cout<<cou;
// system("pause");
cou+=(max(abs(left1-left2),abs(right1-right2)-min(abs(left1-left2),abs(right1-right2))));
cout<<max(abs(left1-left2),abs(right1-right2))<<" ";
// system("pause");
// cout<<cou<<" ";
cou=0;
if(left1==left2 && right1==right2)
cout<<0<<" ";
else if(left1!=left2 && right1!=right2 && abs(left1-left2)!=abs(right1-right2))
cout<<2<<" ";
else
cout<<1<<" ";
if(left1==left2 && right1==right2)
cout<<0<<" ";
else if(left1==left2 || right1==right2)
cout<<1<<" ";
else
cout<<2<<" ";
cou=0;
if(left1==left2 && right1==right2)
cout<<0<<endl;
else if(map[left1][right1]!=map[left2][right2])
cout<<"Inf"<<endl;
else if(abs(left1-left2)==abs(right1-right2))
cout<<1<<endl;
else
cout<<2<<endl;
}
}
return 0;
}
poj 1657 Distance on Chessboard相关推荐
- POJ1657 Bailian1657 Distance on Chessboard【基础】
Distance on Chessboard 描述 国际象棋的棋盘是黑白相间的8 * 8的方格,棋子放在格子中间.如下图所示: 王.后.车.象的走子规则如下: 王:横.直.斜都可以走,但每步限走一格. ...
- 国际象棋走棋步数(Distance on Chessboard)计算程序
国际象棋走棋步数(Distance on Chessboard)计算程序 国际象棋的棋盘是黑白相间的8 * 8的方格,棋子放在格子中间.如下图所示: 王.后.车.象的走子规则如下: 王:横.直.斜都 ...
- poj 1986 Distance Queries LCA
题目链接:http://poj.org/problem?id=1986 Farmer John's cows refused to run in his marathon since he chose ...
- POJ 1986 Distance Queries(LCA)
[题目链接] http://poj.org/problem?id=1986 [题目大意] 给出一棵树,问任意两点间距离. [题解] u,v之间距离为dis[u]+dis[v]-2*dis[LCA(u, ...
- POJ - 1986 Distance Queries 倍增求LCA
题意还是很有病的,说了半天后边的方向都没用的,意思就是跟样例一样求两点间的距离,裸的LCA 两个点x,y的距离=dis[x]+dis[y]-2*dis[LCA(x,y)]; 三个点x,y,z的距离=d ...
- poj 1986 Distance Queries
LCA 题意:LCA模板题,输入n和m,表示n个点m条边,下面m行是边的信息,两端点和权,后面的那个字母无视掉,没用的.接着k,下面k个询问lca,输出即可 有人说要考虑不连通的情况,我没考虑AC了, ...
- (精)【ACM刷题之路】POJ题目详细多角度分类及推荐题目
POJ上的一些水题(可用来练手和增加自信) (poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094) 初期: ...
- POJ刷题列表——正在进行
转载自:http://blog.csdn.net/pyub153/article/details/50480333 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心 ...
- POJ前面的题目算法思路【转】
1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 85% 2005-5-7 1002 487-3279 n/a 90% 2005-5- ...
- poj题目详细分类及算法推荐题目
DP: 1011 NTA 简单题 1013 Great Equipment 简单题 1024 Calendar Game 简单题 ...
最新文章
- JVM解读-性能调优实例
- set和multiset
- 在Activiti中执行自定义查询
- pdf.js浏览中文pdf乱码的问题解决
- HTML5程序设计 SVG
- python编写计算器实例,Python只用40行代码编写的计算器实例
- SylixOS学习三—— SylixOS的引导与安装1
- 分割线与边框嵌入文字
- 微信小程序之评分页面
- ps常用快捷键(二)
- 全闪存助攻:数据存储迎来又一个“新元年”
- unity实现炮弹运动轨迹(抛物线)
- DevEco Studio JS sdk下载问题
- PHP调用jsignature生成图片,App端jSignature签字版生成透明背景png图片
- PLC控制例子——中央空调机房控制系统
- pycharm验证码
- 一个成功人士的创业心得
- python --windos系统托盘
- 计算机学院可以举办活动,计算机学院举办2019年家长开放日系列活动
- 中级育婴师证怎么考,需要些什么条件