zoukankan      html  css  js  c++  java
  • codeforces 980B Marlin

    题意:

    有一个城市有4行n列,n是奇数,有一个村庄在(1,1),村民的活动地点是(4,n);

    有一个村庄在(4,1),村民的活动地点是(1,n);

    现在要修建k个宾馆,不能修建在边界上,问能否给出一种安排方案使得两个村庄的村民到他们各自的活动地点的最短路的条数相等。

    思路:

    画了几个实例就应该知道,无论n和k是多少,都可以构建出合理的方案,所以全是YES。

    如果k为偶数,那么就上下对称,这个比较好构造;当k为奇数,我采用的是首先把第二排从中间开始向两边填满,然后第三排则是从中间一格的两边开始填。

    忽略了k为0的情况,导致n发wa和n发rte,惨!

    代码:

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <string>
     4 #include <iostream>
     5 using namespace std;
     6 string a[4];
     7 int main()
     8 {
     9     int n,k;
    10     scanf("%d%d",&n,&k);
    11     puts("YES");
    12     for (int i = 0;i < 4;i++)
    13     {
    14         for (int j = 0;j < n;j++) a[i].push_back('.');
    15     }
    16     if (k % 2 == 0)
    17     {
    18         int c = 1;
    19         int l = 1;
    20         while (1)
    21         {
    22             if (k <= 0) break;
    23             a[c][l] = '#';
    24             c++;
    25             k--;
    26             if (k <= 0) break;
    27             if (c >= 3)
    28             {
    29                 c = 1;
    30                 l++;
    31             }
    32         }
    33     }
    34     else
    35     {
    36         int l = n / 2,r = n / 2;
    37         int c = 1;
    38         while (1)
    39         {
    40             if (k <= 0) break;
    41             a[c][l] = a[c][r] = '#';
    42             if (l == r) k--;
    43             else k-= 2;
    44             if (k <= 0) break;
    45             l--,r++;
    46             if (l <= 0) break;
    47         }
    48         l =  n / 2 - 1,r = n / 2 + 1;
    49         c = 2;
    50         while (1)
    51         {
    52             if (k <= 0) break;
    53             a[c][l] = a[c][r] = '#';
    54             k -= 2;
    55             l--,r++;
    56         }
    57     }
    58     for (int i = 0;i < 4;i++) cout << a[i] << endl;
    59     return 0;
    60 }
  • 相关阅读:
    记录某次应急演练
    C++之分文件编写
    C++之冒泡排序实现
    cobaitstrike之修改特征
    cobaitstrike之DNS上线
    网盘搜索【不断更新ing】
    CVE-2021-2109 Weblogic Server远程代码执行
    C++之一维&二维数组
    CDH-5.12.2安装教程
    linux安装mysql教程
  • 原文地址:https://www.cnblogs.com/kickit/p/9012058.html
Copyright © 2011-2022 走看看