zoukankan      html  css  js  c++  java
  • codeforces 374A Inna and Pink Pony 解题报告

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

    题目意思:给出一个 n 行  m 列 的棋盘,要将放置在坐标点为(i, j)的 candy 移动到四个角落(1,1),(1,m),(n, 1),(n, m) 中的其中一个。假设当前在位置(x, y),规定每次移动遵循,(x+a, y+b) 、 (x+a, y-b)、 (x-a, y+b)、(x-a, y-b)。求最小的移动次数。

        求出 (i, j) 到每个角落的距离diff_x, diff_y,而且diff_x 必须要除得尽 a, diff_y除得尽 b,这个很好理解,次数嘛~~~除此,除完之后这两个值必须是同奇或同偶。还有就是移动的时候不能超出边界,在边界时的特判了~~~~

        A题都不简单啊~~~

        

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstdlib>
     4 #include <cmath>
     5 #include <limits.h>
     6 using namespace std;
     7 
     8 int n, m, i, j, a, b;
     9 
    10 int check(int corner_x, int corner_y)
    11 {
    12     if (corner_x == i && corner_y == j)
    13         return 0;
    14     if (i + a > n && i - a < 1 || j + b > m && j - b < 1)  // 边界处理
    15         return INT_MAX;
    16     int diff_x = abs(corner_x - i);
    17     int diff_y = abs(corner_y - j);
    18     if (diff_x % a || diff_y % b)  // 步数要为整数
    19         return INT_MAX;
    20     int div_x = diff_x / a;
    21     int div_y = diff_y / b;
    22     if ((!(div_x&1) && div_y&1) || (div_x&1) && !(div_y&1))  // 移动的次数要同时为奇数或偶数
    23         return INT_MAX;
    24     return max(div_x, div_y);
    25 }
    26 
    27 int main()
    28 {
    29     #ifndef ONLINE_JUDGE
    30         freopen("input.txt", "r", stdin);
    31     #endif
    32     while (scanf("%d%d%d%d%d%d", &n, &m, &i, &j, &a, &b) != EOF)
    33     {
    34         int ans = INT_MAX;
    35         ans = min(check(1,1), check(1,m));
    36         ans = min(ans, check(n,1));
    37         ans = min(ans, check(n,m));
    38         if (ans == INT_MAX)
    39             printf("Poor Inna and pony!
    ");
    40         else
    41             printf("%d
    ", ans);
    42     }
    43     return 0;
    44 }
  • 相关阅读:
    ceph简易安装
    ceph安装
    nova计算节点部署
    onva控制节点部署
    nova介绍
    image部署
    glance镜像介绍
    keystone部署
    keystone介绍
    rabbimtq消息队列部署
  • 原文地址:https://www.cnblogs.com/windysai/p/4060891.html
Copyright © 2011-2022 走看看