codeforces 515A.Drazil and Date 解题报告

题目链接:http://codeforces.com/problemset/problem/515/A

题目意思:问能否从 (0, 0) 出发,恰好走 s 步,到达该位置(a, b)。

  首先容易知道,最少的步数为 |a| + |b|,最长就是——当然是无限啦(乱兜圈子就行)。然后就有一点点带着个人感觉来做了= =,第六感确实不错的,呵呵,证明就有待考究了。

  如果 |a| + |b| 跟 s 的奇偶性相同就有解,否则无解。当然前提是满足 s 至少要比最少的步数大!

      

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstdlib>
 4 #include <cstring>
 5 #include <cmath>
 6 using namespace std;
 7 
 8 int main() {
 9     int a, b, s;
10     while (scanf("%d%d%d", &a, &b, &s) != EOF) {
11         int mindist = abs(a) + abs(b);
12         if (mindist > s)
13             printf("No
");
14         else {
15             if (mindist & 1 && s & 1)
16                 printf("Yes
");
17             else if (mindist % 2 == 0 && s % 2 == 0)
18                 printf("Yes
");
19             else
20                 printf("No
");
21             }
22         }
23         return 0;
24 }
原文地址:https://www.cnblogs.com/windysai/p/4295736.html