思路:针对每个视图,列举出其可能处在的空间坐标,如果两次计算得到的颜色不一致,说明该点不存在。直到没有这种情况出现为止,另外这种计算的是最大值情况。

代码如下:

#include <iostream>
#include <cstdio>
#include <fstream>using namespace std;const int N = 11;
const int SIX = 6;#define REP(i, n) for (int i = 0; i < n; ++i)char view[SIX][N][N];
char pos[N][N][N];char readChar()
{char ch;while (1){ch = cin.get();if ((('A' <= ch) && ('Z' >= ch)) || ('.' == ch)){return ch;}}
}void getPos(int n, int v, int i, int j, int len, int& x, int& y, int& z)
{if (0 == v){x = len; y = j; z = i;}else if (1 == v){x = n - 1 - j; y = len; z = i;}else if (2 == v){x = n - 1 - len; y = n - 1 - j; z = i;}else if (3 == v){x = j; y = n - 1 - len; z = i;}else if (4 == v){x = n - 1 - i; y = j; z = len;} else{x = i; y = j; z = n - 1 - len;}
}int solve(int n)
{REP(i, n) REP(j, SIX) REP(k, n) view[j][i][k] = readChar();REP(i, n) REP(j, n) REP(k, n) pos[i][j][k] = '#';REP(i, SIX) REP(j, n) REP(k, n) if ('.' == view[i][j][k]){REP(p, n){int x, y, z;getPos(n, i, j, k, p, x, y, z);pos[x][y][z] = '.';}}for (;;){bool done = true;REP(i, SIX) REP(j, n) REP(k, n){if ('.' != view[i][j][k]){REP(p, n){int x, y, z;getPos(n, i, j, k, p, x, y, z);if ('.' == pos[x][y][z]) continue;if ('#' == pos[x][y][z]){pos[x][y][z] = view[i][j][k];break;}if (pos[x][y][z] == view[i][j][k]) break;pos[x][y][z] = '.';done = false;}}}if (done) break;}int ans = 0;REP(i, n) REP(j, n) REP(k, n){if ('.' != pos[i][j][k]) ++ans;}return ans;
}int main()
{
#ifndef ONLINE_JUDGEifstream fin("f:\\OJ\\uva_in.txt");streambuf *back = cin.rdbuf(fin.rdbuf());
#endifint n;while (cin >> n, n){int ans = solve(n);cout << "Maximum weight: " << ans << " gram(s)" << endl;}#ifndef ONLINE_JUDGEcin.rdbuf(back);
#endifreturn 0;
}

UVa1030 Image Is Everything相关推荐

最新文章

  1. JUnit基础及第一个单元测试实例
  2. 《图解HTTP》读书笔记--第3章HTTP报文内的HTTP信息
  3. vue如何获取年月日_vue 学习笔记第二弹
  4. 火了!16岁高中生做的 Python 3.9 八大新特性图
  5. python 复制文件_10 行 Python 代码写 1 个 USB 病毒
  6. c语言atof字母,C语言字符转换之atof()
  7. 【IDEA】idea中maven项目Resource目录下的资源文件无法编译
  8. response.sendRedirect(url)与request.getRequestDispatcher(url).forward(request,response)的区别
  9. 字节对齐 pragma
  10. ASP.NET之缓存技术点滴
  11. 为什么CSDN登陆是明文传输账户密码
  12. 测量计算机编程fx500,工程测量中fx-500P计算器基本程序.doc
  13. Firefox OS开发指南
  14. 2016蓝桥杯b组java试题及答案_2016年第七届蓝桥杯java B组省赛试题
  15. 桌面图标全部成被选中状态解决办法
  16. 移动端小案例(黑马面面)
  17. 深入理解互斥锁的实现
  18. IDEA 搭建黑马品优购商城
  19. linux c 获得root权限,Linux下获取root权限的c程序
  20. 微信订单尾号夺宝php源码,H5最新尾号夺宝源码黑色版 订单号尾数夺宝程序源代码...

热门文章

  1. zigbee学习之路(二)点亮LED
  2. opengl 反走样 混合 多重采样 blend multisample
  3. 利用jquery.form.js实现Ajax无刷新图片上传及预览功能
  4. Vieri离开国际米兰
  5. 开课吧python视频百度云-廖雪峰老师官方人工智能教程,13个案例带你全面入门!...
  6. python编程从入门到精通 叶维忠 pdf-零基础如何学习python?十本精品python书籍推荐...
  7. python里面的之前打过的记忆信息-忘了Python关键语句?这份备忘录拯救你的记忆...
  8. python编程语言好学吗-转行零基础该如何学习python?很庆幸,三年前的我选对了...
  9. monty python喜剧-50大最搞笑喜剧片,无厘头成必杀技!
  10. python运行程序-Python程序的执行过程