/ Vijos / 题库 /

彩色立体图

彩色立体图

描述

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

小渊有一块面积为\(m*n\)的矩形区域,上面有\(m*n\)个边长为1的格子,每个格子上堆了一些同样大小的积木(积木的长宽高都是1)。为了方便阐述,我们假设这块区域是坐北朝南的。

小渊想请你打印出这些格子的立体图。我们定义每个积木为如下格式,并且不会做任何翻转旋转,只会严格以这一种形式摆放:

+-------+
/5\7777'/|
/55.*'88/9|
/.6666\8/9/|
+-------+9.0|
|\44444/|:0|
|1\444/3|b*0|
|11\4/33|b:|
|111X333|b'a+
|11/2\33|/a/
|1/222\3|a/
|/22222|/
+-------+

在良好的光学试验环境下,小渊将T束平行光同时照射在这些积木上。这些平行光首先满足一定是红绿蓝三基色之一。其次若建立三维直角坐标系(x,y,z),其中z方向以上为正方向,x方向以东为正方向,y方向以南为正方向。则入射光的方向总可以表示为\((\pm1~or~0,\pm1~or~0,1)\)的形式。具体来说,我们最多会考虑9个方向的不同平行光,它们的入射方向可以被描述为:

西北方\(\omega\)度仰角~~正北方45度仰角~~东北方\(\omega\)度仰角
正西方45度仰角~~垂直从上入射光~~正东方45度仰角
西南方\(\omega\)度仰角~~正南方45度仰角~~东南方\(\omega\)度仰角

其中\(\omega=\arctan\frac{\sqrt{2}}{2}\)。

对于每一个单位积木来说,可以打印出来的三个表面被分为12个小三角形,如上图所示(图中用符号\(0,1,2,\cdots,9,a,b\) 分别表示了12个小三角形的区域)。

可以证明,\(\textbf{每一个小三角形上照射到的光总是相同的}\)。如果一个面上受到了多重基色光的照射,将得到叠加的颜色,它们的叠加方式如下图所示。同时需要注意的是,同色光之间不能产生能量的叠加:也就是说两束红色光与一束绿色光叠加成的依然是黄色光;而一束红色光与两束绿色光叠加成的也是黄色光,这两种叠加出来的黄色光是没有差异的。

红绿蓝三基色分别用字母\(R~G~B\)来表示。
而二次叠加后的三种颜色黄青紫,分别用\(Y~C~P\) 来表示。
对于三次叠加后的颜色,也就是白色,用\(W\)来表示。
对于没有任何光线照射到的区域,呈现黑色,用\(K\)来表示。

格式

输入格式

第一行有两个正整数,分别是m和n,表示区域有m 行,有n列。

之后m行,依次由远及近描述了每一行的情况。每一行给出n个正整数,表示第i行第j列中有堆放了多少积木。

之后3行,每行三个字符,描述了9个对应方向(与地图描述方向相同)的光照颜色。
其中每一个字符或者为\(R~G~B\)中之一,表示对应的三种基色。或者为\(*\),表示没有照射光。

这九个方向依次如题中所述。

输出格式

输出给出了打印后的效果。

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

样例1

样例输入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

样例输入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\le m\le 100\)且\(1\le n\le 100\),没有入射光。

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

对于\(100\%\)的数据,\(1\le m\le 100\)且\(1\le n\le 100\),每一个位置堆放的积木总数不超过100,入射光颜色可能是R或G或B中的任何一种颜色,最多可以有9束入射光。

此外,存在\(25\%\)的数据,总的积木个数不超过1000,也就是说建筑物的总体积不超过1000。

来源

SDOI 2015 round2 day2

信息

ID
1963
难度
8
分类
(无)
标签
递交数
45
已通过
7
通过率
16%
被复制
2
上传者

相关

在下列训练计划中:

RP++分类题库