UVA 1030 - Image Is Everything【模拟+思维+迭代更新】
题目链接:uva 1030 - Image Is Everything
题目大意:有一个最大为n*n*n的立方体的一个不规整立体,由若干个1*1*1的小正方体构成(每一个小正方体被涂成不同的颜色),给出n,然后是该立体的前、左、后、右、上和下的视图,然后判断该立体的最大体积是多少。
解题思路:首先先把所有视图上为‘.'的地方清空,然后枚举视图上不为’.'的地方,计算对应的坐标第一个不为空得位置,将其涂色(注意,若一个正方体被着两种不同的颜色,说明该位置不存在正方体)。
下面给出AC代码:
#include <bits/stdc++.h>
using namespace std;
const int maxn=;
int n;
char pos[maxn][maxn][maxn];
char view[][maxn][maxn];
char read_char()
{
char ch;
for(;;)
{
ch=getchar();
if((ch>='A'&&ch<='Z')||ch=='.')
return ch;
}
}
void get(int k,int i,int j,int len,int &x,int &y,int &z)
{
if(k==)
{
x=len;
y=j;
z=i;
}
if(k==)
{
x=n--j;
y=len;
z=i;
}
if(k==)
{
x=n--len;
y=n--j;
z=i;
}
if(k==)
{
x=j;
y=n--len;
z=i;
}
if(k==)
{
x=n--i;
y=j;
z=len;
}
if(k==)
{
x=i;
y=j;
z=n--len;
}
}
int main()
{
while(scanf("%d",&n)!=EOF)
{
if(n==)
break;
for(int i=;i<n;i++)
{
for(int k=;k<;k++)
{
for(int j=;j<n;j++)
{
view[k][i][j]=read_char();
}
}
}
for(int i=;i<n;i++)
{
for(int j=;j<n;j++)
{
for(int k=;k<n;k++)
{
pos[i][j][k]='#';
}
}
}
for(int k=;k<;k++)
{
for(int i=;i<n;i++)
{
for(int j=;j<n;j++)
{
if(view[k][i][j]=='.')
{
for(int p=;p<n;p++)
{
int x,y,z;
get(k,i,j,p,x,y,z);
pos[x][y][z]='.';
}
}
}
}
}
for(;;)
{
bool done=true;
for(int k=;k<;k++)
{
for(int i=;i<n;i++)
{
for(int j=;j<n;j++)
{
if(view[k][i][j]!='.')
{
for(int p=;p<n;p++)
{
int x,y,z;
get(k,i,j,p,x,y,z);
if(pos[x][y][z]=='.')
continue;
if(pos[x][y][z]=='#')
{
pos[x][y][z]=view[k][i][j];
break;
}
if(pos[x][y][z]==view[k][i][j])
break;
pos[x][y][z]='.';
done=false;
}
}
}
}
}
if(done)
break;
}
int ans=;
for(int i=;i<n;i++)
{
for(int j=;j<n;j++)
{
for(int k=;k<n;k++)
{
if(pos[i][j][k]!='.')
ans++;
}
}
}
printf("Maximum weight: %d gram(s)\n",ans);
}
return ;
}
UVA 1030 - Image Is Everything【模拟+思维+迭代更新】的更多相关文章
- uva 1030 - Image Is Everything(迭代更新)
题目链接:uva 1030 - Image Is Everything 题目大意:有一个最大为n*n*n的立方体的一个不规整立体,由若干个1*1*1的小正方体构成(每一个小正方体被涂成不同的颜色),给 ...
- UVA.679 Dropping Balls (二叉树 思维题)
UVA.679 Dropping Balls (二叉树 思维题) 题意分析 给出深度为D的完全二叉树,按照以下规则,求第I个小球下落在那个叶子节点. 1. 默认所有节点的开关均处于关闭状态. 2. 若 ...
- 模拟+思维 HDOJ 5319 Painter
题目传送门 /* 题意:刷墙,斜45度刷红色或蓝色,相交的成绿色,每次刷的是连续的一段,知道最终结果,问最少刷几次 模拟+思维:模拟能做,网上有更巧妙地做法,只要前一个不是一样的必然要刷一次,保证是最 ...
- UVA.699 The Falling Leaves (二叉树 思维题)
UVA.699 The Falling Leaves (二叉树 思维题) 题意分析 理解题意花了好半天,其实就是求建完树后再一条竖线上的所有节点的权值之和,如果按照普通的建树然后在计算的方法,是不方便 ...
- MySQL、MongoDB、Redis 数据库之间的区别与使用(本章迭代更新)
MySQL.MongoDB.Redis 数据库之间的区别与使用 MySQL.MongoDB.Redis 数据库之间的区别与使用(本章迭代更新) update:2019年2月20日 15:21:19(本 ...
- 【模拟】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 10881 - Piotr's Ants【模拟+思维】
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- UVA 10714 Ants 蚂蚁 贪心+模拟 水题
题意:蚂蚁在木棍上爬,速度1cm/s,给出木棍长度和每只蚂蚁的位置,问蚂蚁全部下木棍的最长时间和最短时间. 模拟一下,发现其实灰常水的贪心... 不能直接求最大和最小的= =.只要求出每只蚂蚁都走长路 ...
- UVA 213 Message Decoding 【模拟】
题目链接: https://cn.vjudge.net/problem/UVA-213 https://uva.onlinejudge.org/index.php?option=com_onlinej ...
随机推荐
- ConcurrentDictionary内部函数的使用说明
AddOrUpdate(...)函数的使用: private static ConcurrentDictionary<long, string> condic = new Concurre ...
- 掌握numpy(二)
目录 掌握numpy(一) 掌握numpy(二) 掌握numpy(三) 掌握numpy(四) 数组的reshape 顾名思义,就是对数组的形状进行改变,比如行变成列,一行变多行等. in place ...
- SpringMVC配置双数据源,一个java项目同时连接两个数据库
数据源在配置文件中的配置 请点击---> java架构师项目实战,高并发集群分布式,大数据高可用,视频教程 <pre name="code" class=" ...
- 安装MySQL时提示3306端口已被占用的解决方案
之前安装过mysql,用的好好的,但是今天开启服务时报异常,无法启动.为省事,于是想到卸载重装,安装过程中发现3306已经被占用,这也是一开始服务无法启动的原因. 看到有人说用fport查看端口号,于 ...
- 自动生成getter,setter方法的插件lombok
1.在InteiliJ IDEA上安装lombok插件,并重启 . 2.在pom.xml文件中添加依赖 <dependency> <groupId>org.project ...
- php curl 请求302跳转页面
今天对接支付接口,需要获取支付页面,发现支付商那边给的链接会发送302 跳转,最后发现该方法,绝对给力: <?php $url = 'http://auto.jrj.com.cn/'; $ch ...
- PHP使用ueditor上传配置
引入 按照ueditor官网demo, 引入好ueditor之后, 默认是不能进行上传操作的 在上传时,在上传时会有如下图提示 配置上传 在editor/php目录下,有一个config.json文件 ...
- 通过WebSocket实现一个简单的聊天室功能
WebSocket WebSocket是一个协议,它是是基于TCP的一种新的网络协议,TCP协议是一种持续性的协议,和HTTP不同的是,它可以在服务器端主动向客户端推送消息.通过这个协议,可以在建立一 ...
- vue2 vue-router 组装
适用于vue cli搭建的项目 vue-router模块下载及记录到package.json中: npm i vue-router -D main.js中: import VueRouter from ...
- Android JNI so库的开发
build.gradle的配置 apply plugin: 'com.android.application'android { compileSdkVersion 26 buildToolsVers ...