首页 技术 正文
技术 2022年11月14日
0 收藏 673 点赞 3,217 浏览 1143 个字

白书第一章例题6

构造。思维。几何。

分别从几个角度去看,有矛盾就删掉,最后遍历一下统计个数

方法证明:第一个方块肯定要删除。假设前k个必须删除,第k+1个矛盾出现,假如不删掉,矛盾将持续存在,故必须删掉。

代码有很多细节。

比如注意宏定义加()  //#define REP(i,n) for(int i=0;i<(n);i++)

#include<iostream>
using namespace std;
#define REP(i,n) for(int i=0;i<(n);i++)
int n;
char read_char() {
char c;
for (;; ) {
c = getchar();
if ((c >= 'A'&&c <= 'Z') || c == '.') return c; }
}void get(int k, int i, int j, int p, int &x, int &y, int &z) {
if (k == ) { x = p; y = j; z = i; }
if (k == ) { x = n - - j; y = p; z = i; }
if (k == ) { x = n - - p; y = n - - j; z = i; }
if (k == ) { x = j; y = n - p - ; z = i; }
if (k == ) { x = n - - i; y = j; z = p; }
if (k == ) { x = i; y = j; z = n - - p; }
}
;
char view[][][], pos[][][];
int main() { while (cin >> n) {
if (n == )break;
REP(i, n) REP(k, ) REP(j, n) view[k][i][j] = read_char();
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(i, n)REP(j, n)REP(k, ) 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 ;
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,078
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,553
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,402
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,177
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,814
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898