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 }
  • 相关阅读:
    Visual Studio 2008 每日提示(十一)
    Visual Studio 2008 每日提示(十二)
    13 个应该记住的最不寻常的搜索引擎
    Web1.0及WEB2.0的比较
    Comparing Properties to Methods
    1
    Struct Constructor Restrictions
    简单的动态下拉菜单
    权限设计(转)
    conceptpolymorphism
  • 原文地址:https://www.cnblogs.com/kickit/p/9070385.html
Copyright © 2011-2022 走看看