UVa1030 Image Is Everything
2024-04-23 08:54:27
思路:针对每个视图,列举出其可能处在的空间坐标,如果两次计算得到的颜色不一致,说明该点不存在。直到没有这种情况出现为止,另外这种计算的是最大值情况。
代码如下:
#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相关推荐
最新文章
- JUnit基础及第一个单元测试实例
- 《图解HTTP》读书笔记--第3章HTTP报文内的HTTP信息
- vue如何获取年月日_vue 学习笔记第二弹
- 火了!16岁高中生做的 Python 3.9 八大新特性图
- python 复制文件_10 行 Python 代码写 1 个 USB 病毒
- c语言atof字母,C语言字符转换之atof()
- 【IDEA】idea中maven项目Resource目录下的资源文件无法编译
- response.sendRedirect(url)与request.getRequestDispatcher(url).forward(request,response)的区别
- 字节对齐 pragma
- ASP.NET之缓存技术点滴
- 为什么CSDN登陆是明文传输账户密码
- 测量计算机编程fx500,工程测量中fx-500P计算器基本程序.doc
- Firefox OS开发指南
- 2016蓝桥杯b组java试题及答案_2016年第七届蓝桥杯java B组省赛试题
- 桌面图标全部成被选中状态解决办法
- 移动端小案例(黑马面面)
- 深入理解互斥锁的实现
- IDEA 搭建黑马品优购商城
- linux c 获得root权限,Linux下获取root权限的c程序
- 微信订单尾号夺宝php源码,H5最新尾号夺宝源码黑色版 订单号尾数夺宝程序源代码...
热门文章
- zigbee学习之路(二)点亮LED
- opengl 反走样 混合 多重采样 blend multisample
- 利用jquery.form.js实现Ajax无刷新图片上传及预览功能
- Vieri离开国际米兰
- 开课吧python视频百度云-廖雪峰老师官方人工智能教程,13个案例带你全面入门!...
- python编程从入门到精通 叶维忠 pdf-零基础如何学习python?十本精品python书籍推荐...
- python里面的之前打过的记忆信息-忘了Python关键语句?这份备忘录拯救你的记忆...
- python编程语言好学吗-转行零基础该如何学习python?很庆幸,三年前的我选对了...
- monty python喜剧-50大最搞笑喜剧片,无厘头成必杀技!
- python运行程序-Python程序的执行过程