思路

如果两个面看到颜色不同,则这个正方体一定要被删掉

然后依次考虑每个面即可

注意坐标的映射

代码

#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
char see[20][20][20],mat[20][20][20],n;
void get(int pos,int i,int j,int k,int &x,int &y,int &z){
if(pos==1){
x=k;
y=j;
z=i;
}
else if(pos==2){
x=n-j+1;
y=k;
z=i;
}
else if(pos==3){
x=n-k+1;
y=n-j+1;
z=i;
}
else if(pos==4){
x=j;
y=n-k+1;
z=i;
}
else if(pos==5){
x=n-i+1;
y=j;
z=k;
}
else{
x=i;
y=j;
z=n-k+1;
}
}
char get_nxt(void){
char c=getchar();
while(c==' '||c=='\n'||c=='\r'||c=='\0')
c=getchar();
return c;
}
int main(){
while(scanf("%d",&n)==1&&n){
memset(see,0,sizeof(see));
memset(mat,0,sizeof(mat));
for(int i=1;i<=n;i++){
for(int j=1;j<=6;j++)
for(int k=1;k<=n;k++)
see[j][i][k]=get_nxt();
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
for(int k=1;k<=n;k++)
mat[i][j][k]='#';
for(int i=1;i<=6;i++)
for(int j=1;j<=n;j++)
for(int k=1;k<=n;k++)
if(see[i][j][k]=='.')
for(int p=1;p<=n;p++){
int x,y,z;
get(i,j,k,p,x,y,z);
mat[x][y][z]='.';
}
while(1){
int isok=true;
for(int i=1;i<=6;i++)
for(int j=1;j<=n;j++)
for(int k=1;k<=n;k++)
if(see[i][j][k]!='.')
for(int p=1;p<=n;p++){
int x,y,z;
get(i,j,k,p,x,y,z);
if(mat[x][y][z]=='.')
continue;
if(mat[x][y][z]=='#'){
mat[x][y][z]=see[i][j][k];
break;
}
if(mat[x][y][z]==see[i][j][k])
break;
mat[x][y][z]='.';
isok=false;
}
if(isok)
break;
}
int ans=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
for(int k=1;k<=n;k++)
if(mat[i][j][k]!='.')
ans++;
printf("Maximum weight: %d gram(s)\n",ans);
}
return 0;
}

UVA1030 Image Is Everything的更多相关文章

随机推荐

  1. centos7内核升级及curl访问https证书过期处理

    centos7内核升级及curl访问https证书过期处理 先看下当前系统的linux内核版本 uname -r 3.10.0-229.el7.x86_64 升级步骤 1.rpm --import h ...

  2. GridFS and Geospatial

    GridFS - specification for storing and retrieving large files... images,audio file, video files... F ...

  3. 问题记录 --Error parsing column 1 (Function_Num=10 - String)”

    当C#查询数据库出现Error parsing column ## 的时候,首先去看看数据库里面该字段是什么类型,然后在看看你在创建model 的时候是什么类型,如果model的类型和数据库字段类型不 ...

  4. 获奖感想与Java阶段性学习总结

    获奖感想 其实我早就知道有小黄衫这个东西,而且它就在我的目标清单里,不过没想到娄老师发的这么早.我想小黄衫代表着的是老师对我这一阶段来学习成果和努力的肯定,虽然Java学习中付出很多时间精力,现在也值 ...

  5. Linux部署Java环境

    一. yum安装jdk (1) 搜索jdk安装包 yum search java|grep jdk (2) 下载jdk1.8,下载之后默认的目录为: /usr/lib/jvm/ yum install ...

  6. mysql的执行过程

    1 总流程   https://www.cnblogs.com/annsshadow/p/5037667.html 2 优化器   https://www.cnblogs.com/olinux/p/5 ...

  7. MyBatis探究-----返回Map类型数据

    1.使用@MapKey @MapKey:告诉mybatis封装Map的时候使用哪个属性作为Map的key Map<K, V>:键是这条记录的主键key,值是记录封装后的javaBean 1 ...

  8. 解决SSH远程执行命令找不到环境变量的问题

    通过SSH执行远程主机的命令或脚本时,经常会出现找不到自定义环境变量的问题.但是,如果通过SSH登录远程主机,然后再执行相同的命令或脚本,那么此时执行又是成功的.两种相似的方法,得到的结果却截然不同, ...

  9. spring mvc 配置之 context:annotation-config vs component-scan

    <context:annotation-config/> spring的注解@Resource.@Autowire, @Required and @Qualifier 等注解只是一个提示, ...

  10. java 几个实用的小工具

    1.除法运算 编程的人都知道,java中的“/”.“%”运算,其中前者为取整,后者取余数.那么有没有快捷的运算方法取正常的运算结果呢? 查了资料,发现很简单.代码如下: public static S ...