Image Is Everything LA2995
白书第一章例题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 ;
- }
Image Is Everything LA2995的更多相关文章
- LA2995 Image is everything
蓝书P12 #include <cstdio> #include <cstring> #include <cmath> #include <algorithm ...
- LA 2995 Image Is Everything
题目链接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show ...
随机推荐
- bzoj4557 [JLoi2016]侦察守卫——DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4557 见这位的博客:https://www.cnblogs.com/Narh/p/91403 ...
- yui压缩js文件
http://ganquan.info/yui/?hl=zh-CN yui压缩js文件 在工程中,js文件的管理是个麻烦事,并且随着项目越做越多,各种js文件混杂,有时候一个页面需要加载好多js文件, ...
- 架构:MVVC
ylbtech-架构:MVVC MVVM是Model-View-ViewModel的简写.它本质上就是MVC 的改进版.MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻 ...
- hadoop推荐
hadoop官网 我以Hadoop 2.7.3为例. hadoop 2.7.3 官网 . 用的操作系统是64bit Ubuntu14.04. 其中我们还可以学习 Apache Maven Proje ...
- Python2/3共存,pip2/3共存
python2 和 python3设置: 1.安装Python2和3,并添加环境变量: 2.找到python2和python3的安装目录,修改python2中和python3中python.exe和p ...
- (水题)洛谷 - P1583 - 魔法照片
https://www.luogu.org/problemnew/show/P1583 设计一个strcut cmp用来比较,就可以了. #include<bits/stdc++.h> u ...
- 51nod 1069【思维】
具体思路来自相关讨论 给个不太严谨的证明思路: 第一步:证明路径可逆,也就是如果(a, b) -> (x, y)可行,则(x, y) - > (a, b)可行 这个比较直观,只需要分别由( ...
- hdoj5402 【模拟/构造】
题意: 给你一个矩阵,每个值都是非负,然后让你从左上角走到右下角,每个点只能走一次,求到终点的最大值,还要输出一条路径 思路: 一开始拿到还以为搜索之类的,但是发现神特么暴力+麻烦(因为路径这个东西. ...
- Luogu P1663 山【二分答案/实数域】By cellur925
题目传送门 现在要在山上的某个部位装一盏灯,使得这座山的任何一个部位都能够被看到. 给出最小的y坐标,如图的+号处就是y坐标最小的安装灯的地方. 这个题嘛...今年省选前学姐来我们(破烂)的机房串门的 ...
- SpringBoot自定义参数解析器
一.背景 平常经常用 @RequestParam注解来获取参数,然后想到我能不能写个自己注解获取请求的ip地址呢?就像这样 @IP String ip 二.分析 于是开始分析 @RequestPara ...