牛客小白月赛1 F.三视图

题目链接

题目描述

Etéreo 拿出家里的许多的立方体积木,堆成了一个三维空间中的模型。既然你高考选了技术, 那想必你一定想知道,这个模型的三视图是什么吧!

图中,xx 轴、yy 轴和 zz 轴的方向已经标明。现在规定,图中的红色面为主视面,蓝色面为右视面(注意输出中应为左视而非右视),黄色面为俯视面。具体方向可以观察样例。

输入描述:

第一行四个数 X,Y,Z,N\mathbb{X}, \mathbb{Y}, \mathbb{Z}, \mathbb{N}X,Y,Z,N ,表示该三维空间大小为 X×Y×Z\mathbb{X} \times \mathbb{Y} \times \mathbb{Z}X×Y×Z ,且有 N\mathbb{N}N 个立方体。
接下去 N\mathbb{N}N 行,每行三个整数 xi,yi,zix_i, y_i, z_ixi​,yi​,zi​,表示其位置坐标。

输出描述:

输出共 Y+Z+1\mathbb{Y} + \mathbb{Z} + 1Y+Z+1 行,前 Y\mathbb{Y}Y 行每行 X+Z+1\mathbb{X} + \mathbb{Z} + 1X+Z+1 个字符,输出正视图及左视图,两幅图之间有一列空格;接下去输出一个空行;再接下去 Z\mathbb{Z}Z 行,每行$ \mathbb{X}$ 个字符,表示俯视图。
其中 "."\texttt{"."}"." 表示空, "x"\texttt{"x"}"x" 表示有立方体。

示例1

输入

2 2 2 2
1 1 1
2 2 2

输出

.x .x
x. x.x.
.x

示例2

输入

3 3 3 3
1 1 2
2 1 1
1 2 1

输出

... ...
x.. x..
xx. xx.xx.
x..
...

不难发现判断某一个视图的某个点是否有方块只需要看二维的那个面该点是否存在,那么只需要建立合适的映射关系即可,拿正视图来说,二维的坐标就是 xxx 轴和 yyy轴的坐标,yyy 轴代表横坐标,xxx轴代表纵坐标,但是我们输出时横坐标是从上往下递增的,所以还要转化一下,变成 (Y−y+1,x)(Y-y+1,x)(Y−y+1,x) 即可,其他两个视图可以自己去分析,存坐标点用二维数组,map 会超时,AC代码如下:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e3+5;
int m1[N][N],m2[N][N],m3[N][N];
int main()
{int X,Y,Z,x,y,z,n;scanf("%d%d%d%d",&X,&Y,&Z,&n);while(n--){scanf("%d%d%d",&x,&y,&z);m1[Y+1-y][x]=m2[z][x]=m3[Y+1-y][z]=1;}for(int i=1;i<=Y;i++){for(int j=1;j<=X;j++){if(m1[i][j]) putchar('x');else putchar('.');}printf(" ");for(int j=1;j<=Z;j++){if(m3[i][j]) putchar('x');else putchar('.');}printf("\n");}printf("\n");for(int i=1;i<=Z;i++){for(int j=1;j<=X;j++){if(m2[i][j]) putchar('x');else putchar('.');}printf("\n");}return 0;
}

牛客小白月赛1 F.三视图相关推荐

  1. 牛客小白月赛61 F.选座椅(双指针)

    牛客小白月赛61 F.选座椅(双指针) 显然 ( l , r ) (l,r) (l,r)满足 ( l , r + 1 ) (l,r+1) (l,r+1)满足. 那么可以考虑双指针,枚举 l l l,然 ...

  2. 牛客小白月赛2 F.黑黑白白

    牛客小白月赛2 F.黑黑白白 题目链接 题目描述 艮为山,动静得宜,适可而止:兑为泽,刚内柔外,上下相和. 艮卦:兼山,艮:君子以思不出其位.财帛常打心头走,可惜眼前难到手,不如意时且忍耐,逢着闲事休 ...

  3. 牛客小白月赛12 F 华华开始学信息学 (分块+树状数组)

    链接:https://ac.nowcoder.com/acm/contest/392/F 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 32768K,其他语言65536 ...

  4. 牛客小白月赛9: F. 暴力出奇迹(思维题)

    链接:https://ac.nowcoder.com/acm/contest/275/F 来源:牛客网 题目描述 给定一个序列,寻找一对l,r,满足1 ≤ l ≤ r ≤ n 最大化的值 其中表示将a ...

  5. 牛客小白月赛17 F小黄鸭(计算几何+积分+二分)

    链接:https://ac.nowcoder.com/acm/contest/1085/F 来源:牛客网 题目描述 小sun的寝室有一只小黄鸭,小黄鸭浮在水面上的样子特别可爱,现在小sun有一个问题: ...

  6. 牛客小白月赛17 F小黄鸭(计算几何+积分+二分)

    题目链接:https://ac.nowcoder.com/acm/contest/1085/F 题解: 根据,,可得① 球的正视图是个圆心为(0,r),半径为r的圆,方程为② 侵入水中的体积: 体积公 ...

  7. F.孤独(牛客小白月赛39)

    F.孤独(牛客小白月赛39) 题意: 给定一棵树,寻找一个路径,将断掉所有与这个路径上的点相连的边,使得剩下的最大连通块的大小最小 题解: 这题有点印象,感觉做过,至少这个方法肯定遇到过 设dp[u] ...

  8. 牛客小白月赛60(A~C)题解

    原题地址:牛客小白月赛60_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 题目A:小竹与妈妈 题意:输出(x-b)/a即可,没什么好说 代码: #include< ...

  9. 牛客小白月赛3 C.博弈

    牛客小白月赛3 C.博弈 题目链接 题目描述 XHRlyb 在和 Cwbc 玩游戏. 在一个多重集合中有在 [l,r] 中的全部整数各一个,即 l,l+1,l+2,......,rl,l+1,l+2, ...

  10. F-选座椅_牛客小白月赛61 (nowcoder.com) 双指针,差分,2021济南ICPC- K Search For Mafuyu (pintia.cn) dfs

    F-选座椅_牛客小白月赛61 (nowcoder.com) 双指针,差分 如果区间[l,r]满足所有条件,那么包含[l,r]的区间也一定是满足条件的,那就考虑双指针遍历每一个区间,如果当前区间满足条件 ...

最新文章

  1. C++:Lambda函数学习
  2. AI4U:以用户友好为目标,智源重大研究方向“机器学习”学者候选人发布
  3. 用jquery验证用户名是否有效或重复
  4. python tk 持续请求接口获取数据_tk数据获得的问题!!
  5. ios微信登录不上服务器,iOS微信授权登录
  6. Android Google Play app signing 最终完美解决方式
  7. SAP透明工厂和弹性制造的原型mockup - SAP 工业 4.0 的一个尝试
  8. ios开发之使用多文件上传的简单封装最原始的
  9. 深入浅出Google Android这本书怎么样
  10. 解决: libcimtd.lib not found, rpcndr.lib not found
  11. mysql通过订单量排序_mysql-关于PHP中订单按照从大到小的顺序排序的思路.
  12. 学习ASP.NET Core Razor 编程系列三——创建数据表及创建项目基本页面
  13. php js特效代码如何用,phpstorm编写代码增加代码爆炸效果
  14. 刷掉985/211,年底我却收到字节50W测试开发offer,实名揭露用人标准
  15. 双线性对映射 概念理解
  16. 服务器系统怎么刻录光盘,怎么刻录Win7系统盘?Win7系统盘刻录教程
  17. 毕业季音乐计算机简谱,毕业季简谱(歌词)-贺敬轩演唱-桃李醉春风记谱
  18. 开学季Web渗透测试工程师精英班“第5期”来袭,加入即永久观看!
  19. 如何将F4V格式的视频转换成MP4格式 1
  20. QScrollArea qt滚动区域的简单使用

热门文章

  1. 最实用的Mysql安全加固手册
  2. 安装office时总得到“安装程序包的语言不受系统支持”的提示解决方法
  3. Account-login
  4. word2019未找到MathPage.wll文件的解决方法
  5. python制作二维码生成器3.0
  6. 函数指针的定义及使用
  7. 汇编语言-实验6(学习打卡Day18)
  8. 河南的抗疫英雄(C语言嘞)
  9. 神经网络辨识的优势是,神经网络辨识的优势有
  10. WAMP安装与基础配置