• codeforces 980B Marlin


    这是一道天坑题,不存在NO的情况,都是YES;

    所以如果K是偶数就先放左边,如果K是奇数就从中间开始放;

    题意:

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

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

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

    思路:

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

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

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

    AC代码:

    #include<stdio.h>
    #include<string>
    #include<iostream>
    using namespace std;
    string a[4];
    int main()
    {
        int n,k;
        scanf("%d%d",&n,&k);
        puts("YES");
        for(int i=0 ; i<4 ; i++)
            for(int j=0 ; j<n ;j++)
            a[i].push_back('.');
        if(k%2==0)
        {
            int x=1;
            int y=1;
            while(1)
            {
                if(k<=0)
                    break;
                a[x][y]='#';
                x++;
                k--;
                if(k<=0)
                    break;
                if(x>=3)
                {
                    x=1;
                    y++;
                }
            }
        }
        else
        {
            int x=n/2,y=n/2;
            int c=1;
            while(1)
            {
                if(k<=0)
                    break;
                a[c][x]=a[c][y]='#';
                if(x==y)
                k--;
                else
                k-=2;
                if(k<=0)
                    break;
                x--;
                y++;
                if(x<=0||y>=n)
                    break;
            }
           c=2;
             x=n/2-1,y=n/2+1;
            while(1)
            {
                if(k<=0)
                break;
                a[c][x]=a[c][y]='#';
                k-=2;
                x--;
                y++;
            }
        }
        for(int i=0 ; i<4 ; i++)
            cout <<a[i]<< endl;
        return 0;
    }
    View Code
  • 相关阅读:
    表、索引元信息的更新
    接口
    SAP ALV OO 选择行打印
    SAP SMARTFORM 变量显示技巧
    SAP SMARTFORMS-基于内存方式在report程序中传递数据到smartforms显示
    PL/Proxy介绍
    pgpool介绍和安装经验
    pgbouncer介绍
    Hibernate使用时需要注意的几个小问题
    JDBC连接MySQL
  • 原文地址:https://www.cnblogs.com/shuaihui520/p/9013739.html
Copyright © 2020-2023  润新知