zoukankan      html  css  js  c++  java
  • 2020 Multi-University Training Contest 4 1012 Last Problem(构造)

    题目

      http://acm.hdu.edu.cn/showproblem.php?pid=6813

    题意

      给出一个无限大的二维平面,每次选择一个点 ( x , y ) 将其染色为 n ,但是前提是,相邻四个格子必须分别已经染了 n - 1 , n - 2 , n - 3 , n - 4 四种颜色,染色可以覆盖,构造出一种合理的染色方案,使得可以在平面上出现颜色 n。 

    题解

      构造出如图所示三角形,利用递归构造。

    #include <bits/stdc++.h>
    // #include <iostream>
    // #include <cstring>
    // #include <string>
    // #include <algorithm>
    // #include <cmath>
    // #include <cstdio>
    // #include <queue>
    // #include <stack>
    // #include <map>
    // #include <bitset>
    // #include <set>
    // #include <vector>
    // #include <iomanip>
    #define ll long long
    #define ull unsigned long long
    #define met(a, b) memset(a, b, sizeof(a))
    #define rep(i, a, b) for(int i = a; i <= b; ++i)
    #define bep(i, a, b) for(int i = a; i >= b; --i)
    #define lowbit(x) (x&(-x))
    #define MID (l + r) / 2
    #define ls pos*2
    #define rs pos*2+1
    #define pb push_back
    #define ios() ios::sync_with_stdio(0), cin.tie(0), cout.tie(0)
    
    using namespace std;
    
    const int maxn = 1e6 + 1010;
    const int inf = 0x3f3f3f3f;
    const ll INF = 0x3f3f3f3f3f3f3f3f;
    const ll mod = 1e9 + 7;
    const double eps = 1e-6;
    const double PI = acos(-1);
    
    int MAP[2010][2010];
    
    void dfs(int x, int y, int val) {
        if(val <= 0) return;
        if(MAP[x - 1][y] != val - 1)
            dfs(x - 1, y, val - 1);
        if(MAP[x][y - 1] != val - 2) 
            dfs(x, y - 1, val - 2);
        if(MAP[x][y + 1] != val - 3)
            dfs(x, y + 1, val - 3);
        if(MAP[x + 1][y] != val - 4)
            dfs(x + 1, y, val - 4);
        MAP[x][y] = val;
        printf("%d %d %d
    ", x, y, val);
    }
    
    int main() {
        int n;
        scanf("%d", &n);
        dfs(1000, 1000, n);
        return 0;
    }
  • 相关阅读:
    思考-少写代码
    app上传 那些事儿!
    vs2010 找不到本地服务器
    如何成为一名优秀得程序员
    python成功之路,Day2-判断和循环语句
    python成功之路,Day1-发展历史
    ES6学习笔记2-字符串扩展
    ES6学习笔记1-解构赋值
    数组的方法
    ES6
  • 原文地址:https://www.cnblogs.com/Ruby-Z/p/13410805.html
Copyright © 2011-2022 走看看