P3326 [SDOI2015]立体图

    • 31通过
    • 104提交
  • 题目提供者 洛谷
  • 评测方式 云端评测
  • 标签 枚举,暴力 骗分 2015 山东 高性能
  • 难度 NOI/NOI+/CTSC
  • 时空限制 1000ms / 128MB

题解

  • 提示:收藏到任务计划后,可在首页查看。
  • 体验新版界面

    最新讨论 显示

    推荐的相关题目 显示

    题目描述

    小渊是个聪明的孩子,他经常会给周围的小朋友们讲些自己认为有趣的内容。最近,他准备给小朋友们讲解彩色水平光源照射下的立体图,并请你帮他在平面上画出来。

    小渊有一块面积为m*n的矩形区域,上面有m*n个边长为1的格子,每个格子上堆了一些同样大小的积木(积木的长宽高都是1)。

    为了方便阐述,我们假设这块区域是坐北朝南的,下面我们给出一个例子。

    小渊想请你打印出这些格子的立体图。我们定义每个积木为如下格式,并且不会做任何翻转旋转,只会严格以这一种形式摆放(左侧是应该打印出来的图样,右侧为对应每一个位置符号的十进制ASCII,其中ASCII为32的符号为空

    在良好的光学环境下,小渊将T束平行光同时照射在这些积木上。这些平行光首先满足一定是红绿蓝三基色之一,其次入射角度满足:与x轴y轴的夹角度数均为45的倍数;且与z轴正方向的夹角或为45度,或为0度,或为315度。

    具体来说,我们最多会考虑9个方向的不同平行光,它们的入射方向可以被描述为: 西北方45度仰角 正北方45度仰角 东北方45度仰角 正西方45度仰角 垂直从上入射光 正东方45度仰角 西南方45度仰角 正南方45度仰角 东南方45度仰角对于每一个单位积木来说,可以打印出来的三个表面被分为12个小三角形,如下图所示(下图中用符号0,1,2,。。

    红绿蓝三基色分别用字母RGB来表示。而二次叠加后的三种颜色青黄紫,分别用YCP来表示。对于三次叠加后的颜色,也就是白色,用W来表示。

    输入输出格式

    输入格式:

    第一行有两个正整数m和n,表示区域有m行n列。之后m行,依次由远及近描述了每一行的情况。每一行给出n个正整数,表示第i行第j列中有堆放了多少积木。之后3行,每行三个字符,描述了9个对应方向(与地图描述方向相同)的光照颜色。其中每一个字符或者为RGB中之一,表示对应的颜色。或者为*,表示没有照射光。这九个方向依次是: 西北方45度仰角 正北方45度仰角 东北方45度仰角 正西方45度仰角 垂直从上入射光 正东方45度仰角 西南方45度仰角 正南方45度仰角 东南方45度仰角

    输出格式:

    输出给出了打印后的效果。其中要求输出结果不含前导空行,结尾也没有额外空行。输出的第一列不能全是空格,且每一行末尾也没有额外空格。

    输入输出样例

    输入样例#1: 复制
    2 2
    2 1
    1 1
    R**
    ***
    **G
    
    输出样例#1: 复制
            +-------+
           /Y\YYYY’/|
          /YY.*’YY/G|
         /.YYYY\Y/G/|
        +-------+G.G|
        |\GGGGG/|\:G|
        |G\GGG/G|G*G|
        |GG\G/GG|G:\|
        |GGGXGGG|G’G+-------+
        |GG/G\GG|/G/G\YYYY’/|
        |G/GGG\G|G/GG.*’YY/G|
        |/GGGGG\|/.GGGG\Y/G/|
        +-------+-------+G.G|
       /Y\GGGG’/G\GGGG’/|\:G|
      /YY.*’GG/GG.*’GG/G|G*G|
     /.YYYY\G/.GGGG\G/G/|G:\|
    +-------+-------+G.G|G’G+
    |\GGGGG/|\GGGGG/|\:G|/G/
    |G\GGG/G|G\GGG/G|G*G|G/
    |GG\G/GG|GG\G/GG|G:\|/
    |GGGXGGG|GGGXGGG|G’G+
    |GG/G\GG|GG/G\GG|/G/
    |G/GGG\G|G/GGG\G|G/
    |/GGGGG\|/GGGGG\|/
    +-------+-------+
    
    输入样例#2: 复制
    3 4
    1 1 2 1
    1 2 1 2
    2 1 2 1
    **B
    ***
    R*G
    
    输出样例#2: 复制
                        +-------+
                       /W\WWWW’/|
                      /WW.*’WW/C|
                     /.WWWW\W/C/|
            +-------+-------+-------+
           /W\WWWW’/|\YYYYY/W\WWWW’/|
          /WW.*’WW/C|G\YYY/WW.*’WW/C|
         /.WWWW\W/C/|GG\Y/.WWWW\W/C/|
        +-------+-------+-------+-------+C.C|---+
       /W\WWWW’/|\YYYYY/W\WWWW’/|\YYYYY/|\:C|C’/|
      /WW.*’WW/C|G\YYY/WW.*’WW/C|G\YYY/Y|C*C|C/C|
     /.WWWW\W/C/|GG\Y/.WWWW\W/C/|GG\Y/YY|C:\|/C/|
    +-------+C.G|GGG+-------+C.G|GGGXYYY|C’C+C.C|
    |\YYYYY/|\:G|GG/|\YYYYY/|\:G|GG/G\YY|/C/|\:C|
    |Y\YYY/Y|C*G|G/K|Y\YYY/Y|C*G|G/GGG\Y|C/C|C*C|
    |YY\Y/YY|C:\|/KK|YY\Y/YY|C:\|/GGGGG\|/C/|C:\|
    |YYYXYYY|C’G+---|YYYXYYY|C'G+-------+C.C|C’C+
    |YY/Y\YY|/G/G\KK|YY/Y\YY|/G/G\GGGG’/|\:C|/C/
    |Y/YYY\Y|G/GG.*’|Y/YYY\Y|G/GG.*’WW/C|C*C|C/
    |/YYYYY\|/.YYYY\|/YYYYY\|/.WWWW\W/C/|C:\|/
    +-------+-------+-------+-------+C.C|C’C+
    |\YYYYY/|\YYYYY/|\YYYYY/|\YYYYY/|\:C|/C/
    |Y\YYY/Y|Y\YYY/Y|Y\YYY/Y|Y\YYY/Y|C*C|C/
    |YY\Y/YY|YY\Y/YY|YY\Y/YY|YY\Y/YY|C:\|/
    |YYYXYYY|YYYXYYY|YYYXYYY|YYYXYYY|C’C+
    |YY/Y\YY|YY/Y\YY|YY/Y\YY|YY/Y\YY|/C/
    |Y/YYY\Y|Y/YYY\Y|Y/YYY\Y|Y/YYY\Y|C/
    |/YYYYY\|/YYYYY\|/YYYYY\|/YYYYY\|/
    +-------+-------+-------+-------+

    说明

    对于15%的数据,1<=n,m<=100,没有入射光。

    对于40%的数据,1<=n,m<=100,入射光只有一束,且入射方向一定是东南方。

    对于100%的数据,1<=n,m<=100,每一个位置堆放的积木总数不超过100,入射光颜色可能是RGB中的任何一种颜色,最多可以有9束入射光。

    提示
    标程仅供做题后或实在无思路时参考。
    请自觉、自律地使用该功能并请对自己的学习负责。
    如果发现恶意抄袭标程,将按照I类违反进行处理。