• 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
  • 相关阅读:
    SQL server 数据库迁移到mysql
    MVC+EF之仓库模式
    MVC+EF之多表关联数据更新
    省市联动下拉菜单的实现
    MVC+EF之Attribute
    网页制作
    MVC5+EF6之排序、过滤、分页
    MVC5+EF6之分部视图(Partial View)
    Bookstap初步了解
    java8新特性学习三(Stream API)
  • 原文地址:https://www.cnblogs.com/shuaihui520/p/9013739.html
Copyright © 2020-2023  润新知