蓝书P12

#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
#define REP(i,n) for(int i=0;i<(n);i++)
const int maxn = ;
int n;
char pos[maxn][maxn][maxn];
char view[][maxn][maxn];
char read_cahr(){
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)==&&n){
REP(i,n) REP(k,) REP(j,n) view[k][i][j]=read_cahr();
REP(i,n) REP(j,n) REP(k,n) pos[i][j][k]='#';
REP(k,) REP(i,n) REP(j,n) if(view[k][i][j]=='.')
REP(p,n){
int x,y,z;
get(k,i,j,p,x,y,z);
pos[x][y][z]='.';
}
for(;;){
bool done=true;
REP(k,) REP(i,n) REP(j,n) if(view[k][i][j]!='.'){
REP(p,n){
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=;
REP(i,n) REP(j,n) REP(k,n)
if(pos[i][j][k]!='.') ans++;
printf("Maximum weight: %d gram(s)\n",ans);
}
return ;
}

LA2995 Image is everything的更多相关文章

  1. Image Is Everything LA2995

    白书第一章例题6 构造.思维.几何. 分别从几个角度去看,有矛盾就删掉,最后遍历一下统计个数 方法证明:第一个方块肯定要删除.假设前k个必须删除,第k+1个矛盾出现,假如不删掉,矛盾将持续存在,故必须 ...

  2. LA 2995 Image Is Everything

    题目链接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show ...

随机推荐

  1. 二维数组快速排序(sort+qsort)

    二维数组快速排序 qsort是c中快速排序,如果简单的一维数组排序,想必大家的懂.现在看一下二维数组的排序,虽然可以冒泡但是太费时间了,我们这里使用qsort来快速排序,看代码应该看得懂吧. 代码: ...

  2. P3388 【模板】割点

    题目背景 割点 题目描述 给出一个n个点,m条边的无向图,求图的割点. 输入输出格式 输入格式: 第一行输入n,m 下面m行每行输入x,y表示x到y有一条边 输出格式: 第一行输出割点个数 第二行按照 ...

  3. 【转】Django添加静态文件设置

    STATIC_URL = '/statics/'STATIC_ROOT= os.path.join(BASE_DIR, 'statics')STATICFILES_DIRS = ( os.path.j ...

  4. torndb在python3中运用

    #连接数据库:db = torndb.Connect() #查询一条的数据get() #查询多行的数据query() #创建数据表,数据库execute() #插入一条数据:sql = "i ...

  5. 掘金 Android 文章精选合集

    掘金 Android 文章精选合集 掘金官方 关注 2017.07.10 16:42* 字数 175276 阅读 50053评论 13喜欢 669 用两张图告诉你,为什么你的 App 会卡顿? - A ...

  6. netty源码分析系列文章

    netty源码分析系列文章 nettynetty源码阅读netty源码分析  想在年终之际将对netty研究的笔记记录下来,先看netty3,然后有时间了再写netty4的,希望对大家有所帮助,这个是 ...

  7. Hackerrank - The Grid Search

    https://www.hackerrank.com/challenges/the-grid-search/forum 今天碰见这题,看见难度是Moderate,觉得应该能半小时内搞定. 读完题目发现 ...

  8. ES5新增数组方法(4):every

    检查数组元素的每个元素是否符合条件. // 数组中的元素全部满足指定条件返回true let arr = [1, 3, 5, 7, 9]; console.log(arr.every((value, ...

  9. #Spring实战第二章学习笔记————装配Bean

    Spring实战第二章学习笔记----装配Bean 创建应用对象之间协作关系的行为通常称为装配(wiring).这也是依赖注入(DI)的本质. Spring配置的可选方案 当描述bean如何被装配时, ...

  10. 实战小项目之基于yolo的目标检测web api实现

    上个月,对微服务及web service有了一些想法,看了一本app后台开发及运维的书,主要是一些概念性的东西,对service有了一些基本了解.互联网最开始的构架多是cs构架,浏览器兴起以后,变成了 ...