uva 1030 - Image Is Everything(迭代更新)
题目链接:uva 1030 - Image Is Everything
题目大意:有一个最大为n*n*n的立方体的一个不规整立体,由若干个1*1*1的小正方体构成(每一个小正方体被涂成不同的颜色),给出n,然后是该立体的前、左、后、右、上和下的视图,然后判断该立体的最大体积是多少。
解题思路:首先先把所有视图上为‘.'的地方清空,然后枚举视图上不为’.'的地方,计算对应的坐标第一个不为空得位置,将其涂色(注意,若一个正方体被着两种不同的颜色,说明该位置不存在正方体)。
#include <stdio.h>
#include <string.h> #define REP(i,n) for (int i = 0; i < (n); i++)
const int N = 15; int n;
char view[N][N][N], pos[N][N][N]; char getChar() {
char ch;
while (true) {
ch = getchar();
if ((ch >= 'A' && ch <= 'Z') || ch == '.') return ch;
}
} void input() {
REP(i, n) REP(k, 6) REP(j, n) view[k][i][j] = getChar();
REP(x, n) REP(y, n) REP(z, n) pos[x][y][z] = '#';
} void search(int i, int j, int k, int p, int& x, int& y, int& z) {
switch(k) {
case 0:
x = i, y = j, z = p; return;
case 1:
x = i, y = p, z = n - j - 1; return;
case 2:
x = i, y = n - j - 1, z = n - p - 1; return;
case 3:
x = i, y = n - p - 1, z = j; return;
case 4:
x = p, y = j, z = n - i - 1; return;
case 5:
x = n - p - 1, y = j, z = i; return;
}
} int solve() { int x, y, z; REP(k, 6) REP(i, n) REP(j, n)
if (view[k][i][j] == '.')
REP(p, n) {
search(i, j, k, p, x, y, z);
pos[x][y][z] = '.';
} while (true) {
bool flag = true;
REP(k, 6) REP(i, n) REP(j, n)
if (view[k][i][j] != '.')
REP(p, n) {
search(i, j, k, p, x, y, z);
if (pos[x][y][z] == '.') continue;
if (pos[x][y][z] == '#')
pos[x][y][z] = view[k][i][j]; if(pos[x][y][z] == view[k][i][j]) break;
pos[x][y][z] = '.';
flag = false;
}
if (flag) break;
} int ans = 0;
REP(x, n) REP(y, n) REP(z, n)
if (pos[x][y][z] != '.') ans++;
return ans;
} int main () {
while (scanf("%d", &n) == 1 && n) {
input();
printf("Maximum weight: %d gram(s)\n", solve() );
}
return 0;
}
uva 1030 - Image Is Everything(迭代更新)的更多相关文章
- UVA 1030 - Image Is Everything【模拟+思维+迭代更新】
题目链接:uva 1030 - Image Is Everything 题目大意:有一个最大为n*n*n的立方体的一个不规整立体,由若干个1*1*1的小正方体构成(每一个小正方体被涂成不同的颜色),给 ...
- MySQL、MongoDB、Redis 数据库之间的区别与使用(本章迭代更新)
MySQL.MongoDB.Redis 数据库之间的区别与使用 MySQL.MongoDB.Redis 数据库之间的区别与使用(本章迭代更新) update:2019年2月20日 15:21:19(本 ...
- UVA 1343 - The Rotation Game-[IDA*迭代加深搜索]
解题思路: 这是紫书上的一道题,一开始笔者按照书上的思路采用状态空间搜索,想了很多办法优化可是仍然超时,时间消耗大的原因是主要是: 1)状态转移代价很大,一次需要向八个方向寻找: 2)哈希表更新频繁: ...
- 【模拟】UVa 1030 - Image Is Everything
1030 - Image Is Everything Time limit: 3.000 seconds Your new company is building a robot that can h ...
- UVA 529 - Addition Chains,迭代加深搜索+剪枝
Description An addition chain for n is an integer sequence with the following four properties: a0 = ...
- uva 11212 - Editing a Book(迭代加深搜索 IDA*) 迭代加深搜索
迭代加深搜索 自己看的时候第一遍更本就看不懂..是非常水,但智商捉急也是没有办法的事情. 好在有几个同学已经是做过了这道题而且对迭代加深搜索的思路有了一定的了解,所以在某些不理解的地方询问了一下他们的 ...
- UVA 11212 Editing a Book [迭代加深搜索IDA*]
11212 Editing a Book You have n equal-length paragraphs numbered 1 to n. Now you want to arrange the ...
- 00_Python面试题_迭代更新
一.Python是什么类型的语言,以及和其他语言对比 1.Python是一种解释性语言,他和C语言以及C衍生的语言不通,在Python运行之前不需要编译,其他解释语言还有Ruby.PHP. 2.Pyt ...
- 随着firefox的迭代更新:FireBug不能用了?使用火狐Try Xpath插件替代Firebug和Firepath
本篇文章讲解如何在火狐中安装和使用Try Xpath(插件替代Firebug和Firepath). 在火狐中安装Try Xpath 1. 打开火狐浏览器 FireFox57以上的版本 2. 在火狐菜单 ...
随机推荐
- Presto: 可以处理PB级别数据的分布式SQL查询引擎
2012年秋季Facebook启动了Presto,Presto的目的是在几百PB级别数据量上面进行准实时分析.在摒弃了一些外部项目以后,Facebook准备开发他们自己的分布式查询引擎.Presto的 ...
- 十分钟了解MVVMLight
十分钟了解MVVMLight 前言: 最近看了看开源框架MVVMLight,一直想写一点笔记,但是文笔欠佳,索性就放弃了.那就来翻译一点文章吧. 由于英文水平和技术水平有限,凡是不妥之处,请大家指 ...
- 打开网页自动弹出qq客户端
新建js后调用即可,打开网站自动弹出qq对话框,若qq为关闭状态则启动qq,之后弹出对话框. document.write("<iframe src='tencent://messag ...
- vs2010 使用SignalR 提高B2C商城用户体验(三)
vs2010 使用SignalR 提高B2C商城用户体验(三) 上一章节,我们的web即时通讯已经可以实现跨域了,但针对我们的需求,还希望,一些客户端程序可以和我们的web用户,在线聊天,所以到Sig ...
- 【转】WPF中Binding的技巧(一)
WPF中Binding的技巧(一) 在WPF应用的开发过程中Binding是一个非常重要的部分. 在实际开发过程中Binding的不同种写法达到的效果相同但事实是存在很大区别的. 这里将实际中碰到 ...
- java.lang.UnsupportedClassVersionError(java项目版本一致问题)
报此错误,一般都是由于在myeclipse中的java项目是用高版本(jdk1.6之后)的jdk进行编译后生成的class文件,却要运行在低版本的jdk虚拟机上,导致这个错误 解决办法: 在myecl ...
- 【BZOJ 2333 】[SCOI2011]棘手的操作(离线+线段树)
2333: [SCOI2011]棘手的操作 Description 有N个节点,标号从1到N,这N个节点一开始相互不连通.第i个节点的初始权值为a[i],接下来有如下一些操作: U x y: 加一条边 ...
- awsomeplayer结构认识
把这个搞明白,算是顿悟的一个真实例子.怎么也搞不懂的架构,突然就想明白了.不过这其实是一个思维的过程. 当然如果你想明白这些东西,至少要非常清楚一个概念:接口. 我只是一个半路出家的开发者,我真正明白 ...
- Migrating from IntelliJ Projects
We might provide an automatic migration option in Android Studio in the future. For now, to migrat ...
- org.springframework.web.bind.ServletRequestDataBinde
org.springframework.validation Class DataBinder java.lang.Object org.springframework.validation.Data ...