Codeforces #217 (Div. 2) A Rook, Bishop and King
来源:互联网 发布:php socket的使用 编辑:程序博客网 时间:2024/06/05 07:03
第二次做codeforces,坑得要死有木有
尼玛就做出一题,最后还错了!!
题目的意思是对三种棋子有三种移动方法:
1、同行或同列随意移动步数
2、对角线上随意移动步数
3、任意方向移动一步
给出(r1,c1) (r2,c2)
保证两坐标不同
输出三种移动方式下的最小步数
主要还是心态没有调整好,一心想着早点交导致错误和底下各种问题。
分析第一种情况:若行和列有一个相等的,则移动一次;两者均不同则移动两次。
分析第二种情况:可知一共有0、1、2三种可能,无法移动到则为0,在其主对角线上则为1,移动到对角线上某点后再以该位置为起始位置移动对角线为2;
结果为1对应的为abs(r1-r2)==abs(c1-c2);
结果为2对应的为abs(r1-r2)-abs(c1-c2)为2的倍数且不为0;
不符合两种情况的则对应0
分析第三种情况:若r1==r2,则移动abs(c1-c2);若c1==c2,则移动abs(r1-r2);若均不相等,则可分析得只需移动abs(c1-c2)和abs(r1-r2)中的较大者步即可!
在写博客的过程中才意识到最大的错误是没有看这个图!!!!!!!!!!
怒贴一记代码:
#include <stdio.h>#include <stdlib.h>int max(int a,int b){ return a>b?a:b;}int main(void){ int r1,c1,r2,c2; int a,b; while(scanf("%d%d%d%d",&r1,&c1,&r2,&c2)!=EOF) { int flag1=0,flag2=0,flag3=0; a=abs(r1-r2); b=abs(c1-c2); if(r1!=r2) flag1++; if(c1!=c2) flag1++; if(abs(a-b)%2==0) { if(a==b) flag2=1; else flag2=2; } if(r1==r2) flag3=b; else if(c1==c2) flag3=a; else flag3=max(a,b); printf("%d %d %d\n",flag1,flag2,flag3); } return 0;}
- Codeforces #217 (Div. 2) A Rook, Bishop and King
- Codeforces Round #217 (diy.2) A. Rook, Bishop and King
- CodeForces 370A Rook, Bishop and King
- CodeForces 370A Rook, Bishop and King
- A. Rook, Bishop and King
- A. Rook, Bishop and King----思维题
- CodeForces 370A Rook, Bishop and King(车,象,王到目的地的最小步数)
- Codeforces Round #187 (Div. 2) A and B
- Codeforces Round #178 (Div. 2) A and B
- CodeForces #195 Div.2-A. Vasily the Bear and Triangle
- CodeForces #199Div.2-A.Xenia and Divisors
- Codeforces Round #199 (Div. 2) A. Xenia and Divisors
- Codeforces Round #204 (Div. 2) A. Jeff and Digits
- Codeforces Round #204 (Div. 2) A Jeff and Digits
- Codeforces Round #206 (Div. 2) A. Vasya and Digital Root
- Codeforces Round #208 (Div. 2) A. Dima and Continuous Line
- Codeforces Round #215 (Div. 2) -A. Sereja and Coat Rack
- Codeforces Round #215 (Div. 2) A. Sereja and Coat Rack
- Android推送通知指南
- 游戏资源缓存ResourceCache
- 怎样反编译APK得到源代码和xml文件
- 指针篇之一 宝藏与藏宝图
- UMTS中的WCDMA:HSPA演进及LTE(原书第5版)
- Codeforces #217 (Div. 2) A Rook, Bishop and King
- Perfmon - Windows 自带系统监测工具
- getSession(true)和getSession(false)的区别
- Eclipse安装SVN插件
- CodeForces 370A Rook, Bishop and King
- PFQ: a Linux kernel module for packet capturing on multi-core architectures
- 趣味《游戏》编程5
- 内存泄露检测工具比较
- [开源] OpWeb 框架 --快速高效的实时交互框架(更新至 0.0.4.0)