UVa Problem 10051
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std; int cube[][];
int max_col[];
int tmp_col[];
struct{
int p;
int wh;
} pre[][]; struct c{
int p;
int wh;
}st_col[],tmp_st[];
int ans,ansc,answ; int main(){
int n; int T=;
while(scanf("%d",&n),n){
for(int i=;i<=;i++)
st_col[i].p=st_col[i].wh=-;
T++;
if(T>) printf("\n");
ans=answ=ansc=-;
memset(max_col,,sizeof(max_col));
for(int i=;i<=n;i++){
for(int j=;j<=;j++)
scanf("%d",&cube[i][j]);
}
for(int i=n;i>=;i--){
for(int j=;j<=;j++){
tmp_col[cube[i][j]]=max_col[cube[i][j]];
tmp_st[cube[i][j]]=st_col[cube[i][j]];
}
for(int k=;k<=;k++){
if(k%){
if(tmp_col[cube[i][k]]+>max_col[cube[i][k+]]){
max_col[cube[i][k+]]=tmp_col[cube[i][k]]+;
if(ans<max_col[cube[i][k+]]){
ans=max_col[cube[i][k+]];
ansc=i;
answ=k+;
}
pre[i][k+].p=tmp_st[cube[i][k]].p;
pre[i][k+].wh=tmp_st[cube[i][k]].wh;
st_col[cube[i][k+]].p=i;
st_col[cube[i][k+]].wh=k+;
}
}
else{
if(tmp_col[cube[i][k]]+>max_col[cube[i][k-]]){
max_col[cube[i][k-]]=tmp_col[cube[i][k]]+;
if(ans<max_col[cube[i][k-]]){
ans=max_col[cube[i][k-]];
ansc=i;
answ=k-;
}
pre[i][k-].p=tmp_st[cube[i][k]].p;
pre[i][k-].wh=tmp_st[cube[i][k]].wh;
st_col[cube[i][k-]].p=i;
st_col[cube[i][k-]].wh=k-;
}
}
}
}
printf("Case #%d\n",T);
printf("%d\n",ans);
int p=ansc,pw=answ;
while(p!=-){
printf("%d ",p);
if(pw==){
printf("front\n");
}
if(pw==) printf("back\n");
if(pw==) printf("left\n");
if(pw==) printf("right\n");
if(pw==) printf("top\n");
if(pw==) printf("bottom\n");
int tp=p,tw=pw;
p=pre[tp][tw].p;
pw=pre[tp][tw].wh;
}
}
return ;
}
UVa Problem 10051的更多相关文章
- 【转】UVa Problem 100 The 3n+1 problem (3n+1 问题)——(离线计算)
// The 3n+1 problem (3n+1 问题) // PC/UVa IDs: 110101/100, Popularity: A, Success rate: low Level: 1 / ...
- UVA Problem B: Fire!
Problem B: Fire! Joe works in a maze. Unfortunately, portions of the maze have caught on fire, and t ...
- UVa Problem 10132 File Fragmentation (文件还原) 排列组合+暴力
题目说每个相同文件(01串)都被撕裂成两部分,要求拼凑成原来的样子,如果有多种可能输出一种. 我标题写着排列组合,其实不是什么高深的数学题,只要把最长的那几个和最短的那几个凑一起,然后去用其他几个验证 ...
- UVa Problem 100 The 3n+1 problem (3n+1 问题)
参考:https://blog.csdn.net/metaphysis/article/details/6431937 #include <iostream> #include <c ...
- [题解]UVa 11082 Matrix Decompressing
开始眨眼一看怎么也不像是网络流的一道题,再怎么看也觉得像是搜索.不过虽然这道题数据范围很小,但也不至于搜索也是可以随随便便就可以过的.(不过这道题应该是special judge,因为一题可以多解而且 ...
- [题解]UVa 10891 Game of Sum
在游戏的任何时刻剩余的都是1 - n中的一个连续子序列.所以可以用dp[i][j]表示在第i个数到第j个数中取数,先手的玩家得到的最大的分值.因为两个人都很聪明,所以等于自己和自己下.基本上每次就都是 ...
- [题解]UVa 10635 Prince and Princess
讲一下题目大意,就是有两个长度为p + 1和q + 1的序列,求它们的LCS. 如果用O(pq)的算法对于这道题来说还是太慢了.所以要另外想一些方法.注意到序列中的所有元素都不相同,所以两个序列中数对 ...
- UVa 11019 Matrix Matcher - Hash
题目传送门 快速的vjudge传送门 快速的UVa传送门 题目大意 给定两个矩阵S和T,问T在S中出现了多少次. 不会AC自动机做法. 考虑一维的字符串Hash怎么做. 对于一个长度为$l$的字符串$ ...
- UVa 11997 K Smallest Sums - 优先队列
题目大意 有k个长度为k的数组,从每个数组中选出1个数,再把这k个数进行求和,问在所有的这些和中,最小的前k个和. 考虑将前i个数组合并,保留前k个和.然后考虑将第(i + 1)个数组和它合并,保留前 ...
随机推荐
- E20170829-mk
Parse vt. 从语法上描述或分析(词句等); serial adj. 连续的; 连载的; 顺序排列的; 分期偿付的; MultiThread n. 多线程; 多流; concurren ...
- bzoj2822[AHOI2012]树屋阶梯(卡特兰数)
2822: [AHOI2012]树屋阶梯 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 879 Solved: 513[Submit][Status] ...
- A - Beautiful Matrix
Problem description You've got a 5 × 5 matrix, consisting of 24 zeroes and a single number one. Let' ...
- C#之MD5加密
C#实现MD5加密 方法一 首先,先简单介绍一下MD5 MD5的全称是message-digest algorithm 5(信息-摘要算法,在90年代初由mit laboratory for comp ...
- Linux的那点事
1.重启nginx服务器 注意,修改了nginx配置文件后最好先检查一下修改过的配置文件是否正确,以免重启后Nginx出现错误影响服务器稳定运行. 判断Nginx配置是否正确命令如下: nginx - ...
- CSS命名规则和如何命名
CSS命名规则 头:header 内容:content/containe 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体布局宽度:wrapper 左右中:l ...
- Android MediaRecorder自定义分辨率
Android MediaRecorder自定义分辨率 工作这么久了,确实积累了不少东西,但都是以文档的形式存在U盘里的,为什么不写博客呢?因为懒啊!!!总感觉博客太难写了(大概是上学时候写作文恐惧症 ...
- Mongo连接远程数据库
mongo IP+Port CrabyterV5 首先这么操作是基于配置了环境变量的,可以参照http://www.cnblogs.com/daiyonghui/p/5209076.html mong ...
- servlet_获取初始化参数
在web.xml的<servlet>标签中增添 <init-param> <param-name>XXX</param-name> <param- ...
- java这个404你能解决吗?
前言 本文首发于公众号[我的小碗汤]本公众号免费提供csdn下载服务,海量IT学习资源,如果你准备入IT坑,励志成为优秀的程序猿,那么这些资源很适合你,包括但不限于java.go.python.spr ...