zoukankan      html  css  js  c++  java
  • Codeforces 980B

    渔托邦可以想象成一个 4行,奇数列的网格。 它有两个主要的村庄; 第一个位于左上角(1,1),在那里的人喜欢在右下角的池(4,n)捕鱼。 第二个村庄位于(4,1),人们喜欢在左下角(1,n)的鲑鱼池塘。
     
    渔托邦的市长希望在城市中放置 k 个酒店,每个酒店都占用一个网格。 为了让人们可以从任何地方进入城市,不能将酒店放在边上。
     
    如果这些单元格没有被酒店占用并且有一共同边,则一个人可以从一个单元移动到另一个单元。
     
    你能帮助市长安排酒店,使从每个村庄到其池塘的最短路径的数量相等吗?

    Input

    第一行输入包含两个整数,n 和 k(3 ≤ n ≤ 99,0 ≤ k ≤ 2 ×(n - 2)),n是奇数。 n和k 代表城市的宽度,以及要建设的酒店数量 。

    Output

    如果可以以满足问题陈述的方式放置所有酒店,则输出“YES”,否则输出“NO”。
     
    如果可能的话,输出另外 4 行描述城市的行,每行应该有 n 个字符,如果该单元格上有酒店,则字符是“#”,如果是空地,字符是“.” 。

    Sample Input

    Input
    7 2
    
    Output
    YES
    .......
    .#.....
    .#.....
    .......
    
    Input
    5 3
    
    Output
    YES
    .....
    .###.
    .....
    .....
    
    题目要求从左上到右下和从左下到右上的最短路径的数目一样
    考虑矩阵对称性
    若n为偶数在第二行第三行(第二列开始)每次放两个 使矩阵关于x轴对称
    若n为奇数先尽可能第二行放满(从中间向两边放),剩下的从两边向中间放,使矩阵关于y轴对称
    第一遍在每个字符间多加了空格,wa了,找了半天。

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    
    int main()
    {
        char s[4][120]= {0};
        int i,j,a,b,d,e;
        cin>>a>>b;
        memset(s,'.',sizeof(s));
    
        printf("YES
    ");
        if(b%2==0)
        {
            d=1;
            for(i=1; i<3; i++)
            {
                d=1;
                for(j=0; j<b/2; j++)
                    s[i][d++]='#';
            }
        }
        else
        {
            e=b;
            s[1][a/2]='#';
            e--;
            for(i=1; i<a/2; i++)
            {
                if(e==0)
                    break;
                s[1][a/2-i]='#';
                s[1][a/2+i]='#';
                e-=2;
            }
            if(e>0)
            {
                for(i=1; i<=e/2; i++)
                {
                    s[2][i]='#';
                    s[2][a-i-1]='#';
                }
            }
        }
    
        for(i=0; i<4; i++)
        {
            for(j=0; j<a; j++)
            {
                    printf("%c",s[i][j]);
            }
            printf("
    ");
        }
    
        return 0;
    }

  • 相关阅读:
    MongoDB mongod.log "connection refused because too many open connections" 处理方法
    12C RAC 故障分析
    Linux(Redhat 7.6)安装PG(Postgresql 9.6.0)
    OGG异构平台安装部署 MySQL->Oracle
    Redhat 7安装Oracle 11.2.0.4 RAC 数据库软件中报错:Error in invoking target 'agent nmhs' of makefile
    Redhat 7.6安装11G RAC GI时遇到此类报错
    Oracle 19.3 RAC on Redhat 7.6 安装最佳实践
    RAC环境中某数据文件(非system表空间)创建在本地,不停机迁移到ASM磁盘中
    python 多线程
    go博客大全
  • 原文地址:https://www.cnblogs.com/coder-tcm/p/9319969.html
Copyright © 2011-2022 走看看