五一训练礼包—坐标问题

五一训练礼包—坐标问题

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 }

 

(四) 总结

 本题主要考察读题能力,能读懂题就没问题。

原文地址:https://www.cnblogs.com/kirk-notes/p/14724877.html