8月2日做题还是主题-业余工作-帮忙做西电ACM网站
来源:互联网 发布:java web药店管理系统 编辑:程序博客网 时间:2024/04/28 15:39
昨天本来打算写BLOG,但是CSDN写BLOG的窗口始终进不去。昨天是建军节。ACM队的老师找我做介绍ACM的网站。我们学校第一次举办如此大赛,我当然很乐意的答应了。当天下午,由于PKU上有周赛,因此没有开始动工,说到周赛,我AC了一道,wa了一道,还有一道,死活想不出怎么得到答案的,不过想想,这三道题我还是可以写出来了。比赛完后我就开始动手做网站了。到网上看看有没有合适的模板。找了几个漂亮的。但是同学说太花了,虽然我做了快一个晚上,这个晚上可能所有的成果都泡汤,不过我觉得简约和大气也是一种美。今天我去了中山大学的ACM网站看了,去了上海交大ACM网站看了。心里也有底的。估计模板我自己做,嵌入CMS管理系统就差不多了。 今天做了大概六道题,有一个题让我特别的兴奋,特放上来共享,这题其实不难,但是花了我挺长时间做出来的。
我的程序代码:
/*
Distance on Chessboard
Time Limit:1000MS Memory Limit:10000K
Total Submit:6652 Accepted:2155
Description
国际象棋的棋盘是黑白相间的8 * 8的方格,棋子放在格子中间。如下图所示:
王、后、车、象的走子规则如下:
- 王:横、直、斜都可以走,但每步限走一格。
- 后:横、直、斜都可以走,每步格数不受限制。
- 车:横、竖均可以走,不能斜走,格数不限。
- 象:只能斜走,格数不限。
写一个程序,给定起始位置和目标位置,计算王、后、车、象从起始位置走到目标位置所需的最少步数。
Input
第一行是测试数据的组数t(0 <= t <= 20)。以下每行是一组测试数据,每组包括棋盘上的两个位置,第一个是起始位置,第二个是目标位置。位置用"字母-数字"的形式表示,字母从"a"到"h",数字从"1"到"8"。
Output
对输入的每组测试数据,输出王、后、车、象所需的最少步数。如果无法到达,就输出"Inf".
Sample Input
Sample Output
Source
POJ Monthly--2004.05.15 Liu Rujia@POJ
*/
#include "iostream"using namespace std;int main(){int map[9][9],step,x,y,dx,dy;char ch1[3],ch2[3];int n,flag;cin>>n;while(n){cin>>ch1>>ch2;dx=ch2[0]-'a'+1;dy=ch2[1]-'0';x=ch1[0]-'a'+1;y=ch1[1]-'0';step=0;if(x==dx&&y==dy)cout<<0<<" ";else{step=abs(x-dx)>abs(y-dy)?abs(x-dx):abs(y-dy);cout<<step<<" ";}if(x==dx&&y==dy)step=0;else if(abs(x-dx)==abs(y-dy)){step=1;}else if(abs(x-dx)==0||abs(y-dy)==0){step=1;}elsestep=2;cout<<step<<" ";if(x==dx&&y==dy)step=0;else if((abs(x-dx)==0||abs(y-dy)==0)&&abs(x-dx)!=abs(y-dy))step=1;elsestep=2;cout<<step<<" ";flag=0;if(x==dx&&y==dy)step=0;else if(abs(x-dx)==abs(y-dy)&&abs(x-dx))step=1;else if(abs(abs(y-dy)-abs(x-dx))%2){flag=1;cout<<"Inf"<<endl;}else if(abs(y-dy)>abs(x-dx)&&!(abs(abs(y-dy)-abs(x-dx))%2)){if(dy+(abs(abs(y-dy)-abs(x-dx))/2)<=8||dy-(abs(abs(y-dy)-abs(x-dx))/2)>=1)step=2;else if(y+(abs(abs(y-dy)-abs(x-dx))/2)<=8||y-(abs(abs(y-dy)-abs(x-dx))/2)>=1)step=3;else{flag=1;cout<<"Inf"<<endl;}}else if(abs(x-dx)>abs(y-dy)&&!((abs(abs(y-dy)-abs(x-dx))%2))){if(dx+(abs(abs(y-dy)-abs(x-dx))/2)<=8||dx-(abs(abs(y-dy)-abs(x-dx))/2)>=1)step=2;else if(x+(abs(abs(y-dy)-abs(x-dx))/2)<=8||x-(abs(abs(y-dy)-abs(x-dx))/2)>=1)step=3;else{flag=1;cout<<"Inf"<<endl;}}else{flag=1;cout<<"Inf"<<endl;}if(!flag)cout<<step<<endl;n--;}return 0;}
2 1 2 13 1 1 Inf
2a1 c3f5 f8
- 8月2日做题还是主题-业余工作-帮忙做西电ACM网站
- 今天的业余工作
- 09年2月20日活动主题:网站架构和开源技术结合
- ACM集训日记-8月2日
- 业余草网站热门关键字
- 工作2个月
- 传真机工作原理(业余了解)
- 主题网站
- 【本周工作】本周工作安排3月7日-3月13日
- 使用业余者系统制作网站步骤
- 如何避免被人看成业余网站
- 如何避免被人看成业余网站
- 如何避免被人看成业余网站
- 网站外链是否还是SEO的重点工作?
- ACM训练日记—8月2日
- 网站gb2312 还是utf-8
- (视频) 《快速创建网站》3.4 网站改版3分钟搞定 - WordPress主题安装和备份
- 8月17工作笔记
- C#实现javascript的escape
- websphere
- Index
- SE-word
- 谁说大象不能跳舞
- 8月2日做题还是主题-业余工作-帮忙做西电ACM网站
- C#判断一个string是否为数字
- Domino 6应用程序性能优化指南(第一部分)
- 昨天晚上做的西电ACM网站,我要全部抛弃掉,做一个更加大气的出来!
- 说明
- 蜀国人物一览
- 理想的权限管理模型
- 按照一定的格式生成一定数量的随机数的例子
- 魏国人物一览