UVA 1030 - Image Is Everything【模拟+思维+迭代更新】
时间:2022-05-07
本文章向大家介绍UVA 1030 - Image Is Everything【模拟+思维+迭代更新】,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目链接:uva 1030 - Image Is Everything
题目大意:有一个最大为n*n*n的立方体的一个不规整立体,由若干个1*1*1的小正方体构成(每一个小正方体被涂成不同的颜色),给出n,然后是该立体的前、左、后、右、上和下的视图,然后判断该立体的最大体积是多少。
解题思路:首先先把所有视图上为‘.'的地方清空,然后枚举视图上不为’.'的地方,计算对应的坐标第一个不为空得位置,将其涂色(注意,若一个正方体被着两种不同的颜色,说明该位置不存在正方体)。
下面给出AC代码:
1 #include <bits/stdc++.h>
2 using namespace std;
3 const int maxn=10;
4 int n;
5 char pos[maxn][maxn][maxn];
6 char view[6][maxn][maxn];
7 char read_char()
8 {
9 char ch;
10 for(;;)
11 {
12 ch=getchar();
13 if((ch>='A'&&ch<='Z')||ch=='.')
14 return ch;
15 }
16 }
17 void get(int k,int i,int j,int len,int &x,int &y,int &z)
18 {
19 if(k==0)
20 {
21 x=len;
22 y=j;
23 z=i;
24 }
25 if(k==1)
26 {
27 x=n-1-j;
28 y=len;
29 z=i;
30 }
31 if(k==2)
32 {
33 x=n-1-len;
34 y=n-1-j;
35 z=i;
36 }
37 if(k==3)
38 {
39 x=j;
40 y=n-1-len;
41 z=i;
42 }
43 if(k==4)
44 {
45 x=n-1-i;
46 y=j;
47 z=len;
48 }
49 if(k==5)
50 {
51 x=i;
52 y=j;
53 z=n-1-len;
54 }
55 }
56 int main()
57 {
58 while(scanf("%d",&n)!=EOF)
59 {
60 if(n==0)
61 break;
62 for(int i=0;i<n;i++)
63 {
64 for(int k=0;k<6;k++)
65 {
66 for(int j=0;j<n;j++)
67 {
68 view[k][i][j]=read_char();
69 }
70 }
71 }
72 for(int i=0;i<n;i++)
73 {
74 for(int j=0;j<n;j++)
75 {
76 for(int k=0;k<n;k++)
77 {
78 pos[i][j][k]='#';
79 }
80 }
81 }
82 for(int k=0;k<6;k++)
83 {
84 for(int i=0;i<n;i++)
85 {
86 for(int j=0;j<n;j++)
87 {
88 if(view[k][i][j]=='.')
89 {
90 for(int p=0;p<n;p++)
91 {
92 int x,y,z;
93 get(k,i,j,p,x,y,z);
94 pos[x][y][z]='.';
95 }
96 }
97 }
98 }
99 }
100 for(;;)
101 {
102 bool done=true;
103 for(int k=0;k<6;k++)
104 {
105 for(int i=0;i<n;i++)
106 {
107 for(int j=0;j<n;j++)
108 {
109 if(view[k][i][j]!='.')
110 {
111 for(int p=0;p<n;p++)
112 {
113 int x,y,z;
114 get(k,i,j,p,x,y,z);
115 if(pos[x][y][z]=='.')
116 continue;
117 if(pos[x][y][z]=='#')
118 {
119 pos[x][y][z]=view[k][i][j];
120 break;
121 }
122 if(pos[x][y][z]==view[k][i][j])
123 break;
124 pos[x][y][z]='.';
125 done=false;
126 }
127 }
128 }
129 }
130 }
131 if(done)
132 break;
133 }
134 int ans=0;
135 for(int i=0;i<n;i++)
136 {
137 for(int j=0;j<n;j++)
138 {
139 for(int k=0;k<n;k++)
140 {
141 if(pos[i][j][k]!='.')
142 ans++;
143 }
144 }
145 }
146 printf("Maximum weight: %d gram(s)n",ans);
147 }
148 return 0;
149 }
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(九)数据层优化-jdbc连接池简述、druid简介
- webpack配置别名alias出现的错误匹配
- 在Java程序中处理数据库超时与死锁
- 如何用TensorFlow和TF-Slim实现图像标注、分类与分割
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(六)easyUI与富文本编辑器UEditor整合
- 使用shell脚本查看数据库负载情况(第二篇)(r3笔记第92天)
- tensorflow LSTM + CTC实现端到端OCR
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(七)图片上传功能
- 黑客比程序员牛在哪?
- oracle工具集初探(r4笔记第8天)
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(二)Log4j讲解与整合
- 京东JData算法大赛-高潜用户购买意向预测(github源码)
- 巧用linux命令做图片下载器(r4笔记第7天)
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(四)单元测试实例
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 快速学习-Sentinel 熔断降级
- C#中关于SqlDataAdapter的Update(dataTable)方法
- Jmeter保存下载的文件
- SNAP Java API处理Sentinel-1数据
- springboot开发spark-submit的java代码
- Kustomize ConfigMapGenerate自动生成ConfigMap中的坑
- Godot游戏开发实践之二:AI之寻路新方式
- Vue 侦听器 watch 扩展之立即触发回调、深度监听和注销
- WPF开发之以管理员身份运行
- 快速学习-Sentinel: 分布式系统的流量防卫兵
- Godot游戏开发实践之一:使用High Level Multiplayer API制作多人游戏(上)
- Godot游戏开发实践之一:使用High Level Multiplayer API制作多人游戏(下)
- ansible生产环境使用场景(二)
- Go 语言实现 RPC 调用
- django FileResponse 解决中文命名文件下载后乱码问题