2016.7.15_模拟赛t1 立方体
来源:互联网 发布:淘宝图片版权怎么看 编辑:程序博客网 时间:2024/05/23 13:23
NOIP模拟 立方体
题目
题目の描述
input
sample input
e2 e3 0 8 1 2 1 1
output
sample output
5
Data Constraint
思路の分析
看到数据范围,第一反应当然是萌萌的爆搜,但是这题暴力复杂度
然而很多状态都是没有用的,于是我们想到了DP,设F[I,J,X,Y,Z]表示当前的位置在(x,y),当前“色子”的前面是X,下面是Y,右面是Z。(这样就可以表示出六个位子对应的数了)
一个状态显然只与ta的上一步有关~那么我们可以开滚动数组
F[I,J,X,Y,Z]可以由4种状态转化而来,分别是:
f[i-1,j,b[y],x,z]+a[y]
f[i+1,j,y,b[x],z]+a[y]
f[i,j-1,x,b[z],y]+a[y]
f[i,j+1,x,z,b[y]]+a[y]
其中b[X]表示与X相对的那个面的编号
贴代码:
var f,g:array[0..9,0..9,0..6,0..6,0..6]of longint; a,b:array[0..6]of longint; i,j,k,l,n,r,c,t1,t2,t3,t4,t5,x,y,z,ans,o:longint; ch1,ch2,ch3,ch4:char;function min(x,y:longint):longint;begin if x<y then exit(x) else exit(y);end;begin read(ch1); read(ch2); read(ch3); read(ch3); read(ch4); for i:=1 to 6 do read(a[i]); readln; t1:=ord(ch1)-96; t2:=ord(ch2)-48; t3:=ord(ch3)-96; t4:=ord(ch4)-48; t5:=t1; t1:=t2; t2:=t5; t5:=t3; t3:=t4; t4:=t5; fillchar(f,sizeof(f),$7f div 3); fillchar(g,sizeof(g),$7f div 3); f[t1,t2,1,5,4]:=0; b[1]:=2; b[2]:=1; b[3]:=5; b[4]:=6; b[5]:=3; b[6]:=4; ans:=1314520; for o:=1 to 64 do begin for i:=1 to 8 do for j:=1 to 8 do for x:=1 to 6 do for y:=1 to 6 do for z:=1 to 6 do begin g[i,j,x,y,z]:=min(f[i-1,j,b[y],x,z]+a[y],f[i+1,j,y,b[x],z]+a[y]); g[i,j,x,y,z]:=min(g[i,j,x,y,z],f[i,j-1,x,b[z],y]+a[y]); g[i,j,x,y,z]:=min(g[i,j,x,y,z],f[i,j+1,x,z,b[y]]+a[y]); end; for x:=1 to 6 do for y:=1 to 6 do for z:=1 to 6 do ans:=min(ans,g[t3,t4,x,y,z]); f:=g; end; writeln(ans+a[5]);end.
(好丑(有型)啊)
0 0
- 2016.7.15_模拟赛t1 立方体
- 20160823模拟赛T1
- loj模拟赛t1
- 【20160904】NOIP模拟赛T1
- 2016.10.13模拟赛T1
- July 15th 模拟赛C T1 游泳池 Solution
- 【faebdc的模拟赛】T1错位
- snacks的模拟赛(t1)
- vijos时光的秘密模拟赛(t1)
- NOIP11.15模拟 T1 SJR的直线
- 【NOIP模拟】立方体
- 2017.04.15【NOIP2017提高组】模拟赛B组 T1:偷懒的小X
- JS模拟T1
- June 11th 模拟赛C T1 Sandcas Solution
- June 11th 模拟赛B T1 刺杀大使 Solution
- July 14th 模拟赛C T1 输油管道 Solution
- July 16th 模拟赛C T1 竞赛排名 Solution
- July 17th 模拟赛C T1 Gift Solution
- 2016.07.16【初中部 NOIP提高组 】模拟赛C总结
- 杭电OJ1008-电梯Elevator
- 树状数组点修改+段求值
- andriod开发中的几个基本概念及关系SDK ADT Platform API
- python网络爬虫实例(一):爬取糗事百科
- 2016.7.15_模拟赛t1 立方体
- 什么是ANR 如何避免它
- ROS多机通信
- 招聘贴
- 动态规划——最长公共子序列问题(LCS)
- Android Design Support Library(一):FloatingActionButton、TextInputLayout、TextInputEditText简单用法
- 一点点orcale
- VS2010断点设置技巧
- 测试