zoukankan      html  css  js  c++  java
  • CodeForces 1221B Knights(思维)

    题目链接:https://vjudge.net/problem/CodeForces-1221B

      可以行列间隔开选一个蓝色棋子,然后让他四个角可以放红色棋子的地方放上红色棋子,最后剩下的地方全都填上蓝色棋子

    #include<set>
    #include<map>
    #include<list>
    #include<stack>
    #include<queue>
    #include<cmath>
    #include<cstdio>
    #include<cctype>
    #include<string>
    #include<vector>
    #include<climits>
    #include<cstring>
    #include<cstdlib>
    #include<iostream>
    #include<algorithm>
    #define endl '\n'
    #define rtl rt<<1
    #define rtr rt<<1|1
    #define lson rt<<1, l, mid
    #define rson rt<<1|1, mid+1, r
    #define maxx(a, b) (a > b ? a : b)
    #define minn(a, b) (a < b ? a : b)
    #define zero(a) memset(a, 0, sizeof(a))
    #define INF(a) memset(a, 0x3f, sizeof(a))
    #define IOS ios::sync_with_stdio(false)
    #define _test printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n")
    using namespace std;
    typedef long long ll;
    typedef pair<int, int> P;
    typedef pair<ll, ll> P2;
    const double pi = acos(-1.0);
    const double eps = 1e-7;
    const ll MOD =  1000000007LL;
    const int INF = 0x3f3f3f3f;
    const double EULC = 0.5772156649015328;
    const int NIL = -1;
    template<typename T> void read(T &x){
        x = 0;char ch = getchar();ll f = 1;
        while(!isdigit(ch)){if(ch == '-')f*=-1;ch=getchar();}
        while(isdigit(ch)){x = x*10+ch-48;ch=getchar();}x*=f;
    }
    const int maxn = 1e2+10;
    char mp[maxn][maxn];
    void solve(int x, int y, int n) {
        mp[x][y] = 'W';
        if (x-2>=0 && y+1<n) 
        mp[x-2][y+1] = 'B';
        if (x-1>=0 && y+2<n) 
        mp[x-1][y+2] = 'B';
        if (x+2<n && y+1<n) 
        mp[x+2][y+1] = 'B';
        if (x+1<n && y+2<n)
        mp[x+1][y+2] = 'B';
        if (x+2<n && y-1>=0) 
        mp[x+2][y-1] = 'B';
        if (x+1<n && y-2>=0) 
        mp[x+1][y-2] = 'B';
        if (x-2>=0 && y-1>=0) 
        mp[x-2][y-1] = 'B';
        if (x-1>=0 && y-2>=0) 
        mp[x-2][y-1] = 'B';
    }
    int main(void) {
        int n;
        while(~scanf("%d", &n)) {
            for (int i = 0; i<n; i+=2)
                for (int j = 0; j<n; j+=2) {
                    if (!mp[i][j]) solve(i, j, n);
                }
            for (int i = 0; i<n; ++i)
                for (int j = 0; j<n; ++j) {
                    if (!mp[i][j]) mp[i][j] = 'W';
                }
            for (int z = 0; z<n; ++z) printf("%s\n", mp[z]);
            zero(mp);
        }
        return 0;
    }
  • 相关阅读:
    Linux LCD驱动(四)--驱动的实现
    Linux LCD驱动(三)--图形显示
    s3c2440的LCD字符显示
    Linux framebuffer显示bmp图片
    Linux Framebuffer编程简介
    linux 2440 LCD 应用程序编程
    嵌入式Linux下S3C2410的调色板彩色显示
    l​i​n​u​x​下​L​C​D​(​f​r​a​m​e​b​u​f​f​e​r​)​驱​动​分​析
    我的基本信息
    unity生命周期
  • 原文地址:https://www.cnblogs.com/shuitiangong/p/12431700.html
Copyright © 2011-2022 走看看