五一训练礼包—坐标问题
Content
· 题目回溯
· 题目分析
· 可行代码
· 总结
(一) 题目回溯
PROBLEM DESCRIPTION
INPUT
OUTPUT
EXEMPLE
NOTE
(二)题目分析
由题可得,OA = n
令 OB = x ,则 AB = n - x ( 0 <= x <= n)
要满足题目要求,则| OB - AB | = k --> | x - ( n - x ) | = k 即:| 2x - n | = k
分为两种情况 ( 如note所示 )
circumstances one —— ( n > k )
令step为移动步数
由于k为整数,所以 ( 2x - n ) 一定是一个偶数才可行,否则就移动一位(左右都可以)
所以 step = 0 或 1
circumstances two —— ( n <= k)
此时只需要使 OA = k (AB = 0)
令step为移动步数
n + step = k --> step = k - n
(三) 可行代码
1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 int T; 6 cin >> T; 7 while (T--) 8 { 9 int Acoor, k; 10 cin >> Acoor >> k; 11 cout << (Acoor < k ? k - Acoor : (Acoor - k) % 2 ? 1 : 0) << endl; 12 } 13 return 0; 14 }
(四) 总结
本题主要考察读题能力,能读懂题就没问题。