zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    关于RGB屏调试的一些知识(转)
    分享调试SI4432的一些小经验(转)
    音频压缩SPEEX应用,对讲机
    Codec 2 开源语音编解码器
    java导读
    视频监控知识汇总
    “inno setup打包,win7下安装没有桌面快捷方式,xp下安装正常”
    MFC设置窗体大小SetWindowPos
    C++中运行外部程序
    C++调用外部应用程序的方法的整理总结(常用)
  • 原文地址:https://www.cnblogs.com/shuaihui520/p/9013739.html
Copyright © 2011-2022 走看看