zoukankan      html  css  js  c++  java
  • codeforces 985A Chess Placing

    题意:

    移动最少的步数,使得所有的棋子在同一颜色的格子中。

    每次一个棋子只能向左或者向右移动一步,不能移到有棋子的格子中。

    思路:

    枚举全黑和全白的情况。

    对于每一个需要移动的棋子,它移动到的位置一定是从1开始第一个可以移动的位置,不交叉移动,保证了步数最小。

    代码:

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <algorithm>
     4 using namespace std;
     5 const int N = 105;
     6 int v[N],g[N];
     7 int mabs(int x)
     8 {
     9     return x >= 0 ? x : -x;
    10 }
    11 int main()
    12 {
    13     int n;
    14     scanf("%d",&n);
    15     for (int i = 0;i < n / 2;i++)
    16     {
    17         int x;
    18         scanf("%d",&x);
    19         v[x] = g[x] = 1;
    20     }
    21     int ans = 0;
    22     for (int i = 1;i <= n;i++)
    23     {
    24         int ma = -1;
    25         if (i % 2 && g[i])
    26         {
    27             for (int j = 1;j <= n;j++)
    28             {
    29                 if (j % 2 == 0 && !g[j])
    30                 {
    31                     ma = j;
    32                     break;
    33                 }
    34             }
    35             ans += mabs(ma - i);
    36             g[ma] = 1;
    37             g[i] = 0;
    38         }
    39     }
    40     int cnt = 0;
    41     for (int i = 1;i <= n;i++)
    42     {
    43         int ma = -1;
    44         if (i % 2 == 0 && v[i])
    45         {
    46             for (int j = 1;j <= n;j++)
    47             {
    48                 if (j % 2 && !v[j])
    49                 {
    50                     ma = j;
    51                     break;
    52                 }
    53             }
    54             cnt += mabs(ma - i);
    55             v[ma] = 1;
    56             v[i] = 0;
    57         }
    58     }
    59     printf("%d
    ",min(ans,cnt));
    60     return 0;
    61 }
  • 相关阅读:
    Account group in ERP and its mapping relationship with CRM partner group
    错误消息Number not in interval XXX when downloading
    错误消息Form of address 0001 not designated for organization
    Algorithm类介绍(core)
    梯度下降与随机梯度下降
    反思
    绘图: matplotlib核心剖析
    ORB
    SIFT
    Harris角点
  • 原文地址:https://www.cnblogs.com/kickit/p/9070385.html
Copyright © 2011-2022 走看看