P1930 亚瑟王的宫殿

2024-03-04 07:38
文章标签 宫殿 亚瑟王 p1930

本文主要是介绍P1930 亚瑟王的宫殿,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这题主要是玄学输入+玄学理解+玄学时间复杂度+玄学定理呀QAQ…
至于玄学理解其他题解已经讲得很清楚了呀,主要还是让大家看看我的玄学代码呀QAQ…

//先玄学理解呀
const z:array[1..8,1..2]of -2..2=((1,2),(1,-2),(-1,2),(-1,-2),(2,1),(2,-1),(-2,1),(-2,-1));
var i,j,k,ix,iy:longint;m,n,h,t,sum,q:longint;kingx,kingy:longint;x_ch:array[char]of longint;min,p:array[-1..100,-1..100]of longint;x,y,u:array[0..10000]of longint;main:longint=maxlongint;boo:array[-1..100,-1..100]of boolean;ans:array[-1..30,-1..50,-1..30,-1..50] of longint;s:string;ch:char;
function mine(m,n:longint):longint;//min
beginif m>n then exit(n) else exit(m);
end;
function max(m,n:longint):longint;//max
beginif m>n then exit(m) else exit(n);
end;
procedure find(x1,y1:longint);//以x1,y1为终点呀QAQ
var i,j,k,pd:longint;
beginfor i:=-2 to 2 do//玄学定理,不知道是谁怎么的呀for j:=-2 to 2 do//接国王的位置一定在国王旁边2格内if boo[kingx+i,kingy+j] thenbeginpd:=0;for k:=1 to sum doinc(pd,ans[x1,y1,x[k],y[k]]);main:=mine(main,pd+max(abs(x1-kingx),abs(y1-kingy)));//当国王直接走到终点for k:=1 to sum dobeginmain:=mine(main,pd-ans[x1,y1,x[k],y[k]]{骑士直接去终点}+ans[kingx+i,kingy+j,x[k],y[k]]{骑士到接的位置}+ans[x1,y1,kingx+i,kingy+j]{从接的位置到终点}+max(abs(i),abs(j))){国王到接的位置};//第k个骑士去接国王呀end;end;
end;
beginreadln(m,n);k:=m;m:=n;n:=k;for ch:='A' to 'Z' do x_ch[ch]:=ord(ch)-ord('A')+1;read(ch,k);kingx:=x_ch[ch];kingy:=k;//读入国王位置呀QAQfor ix:=1 to m dofor iy:=1 to n dofor i:=1 to m dofor j:=1 to n do ans[ix,iy,i,j]:=123123123;//赋初值for ix:=1 to m do//用bfs计算每两个点之间的最短步数,四次居然不超呀,玄学时间复杂度....for iy:=1 to n dobeginx[1]:=ix;y[1]:=iy;u[1]:=0;h:=1;t:=1;for i:=1 to m dofor j:=1 to n doboo[i,j]:=true;boo[ix,iy]:=false;ans[ix,iy,ix,iy]:=0;repeatfor i:=1 to 8 doif boo[x[t]+z[i,1],y[t]+z[i,2]] thenbegininc(h);x[h]:=x[t]+z[i,1];y[h]:=y[t]+z[i,2];u[h]:=u[t]+1;ans[ix,iy,x[h],y[h]]:=u[h];//保存最优解呀boo[x[h],y[h]]:=false;end;inc(t);until t>h;end;while not eof do//玄学读入beginreadln(s);//字符串,真麻烦...for i:=1 to length(s) dobeginif (s[i] in ['A'..'Z']) thenbegininc(sum);x[sum]:=x_ch[s[i]];k:=0;j:=i+2;while (s[j] in ['0'..'9']) and (j<=length(s))dobegink:=k*10+ord(s[j])-48;inc(j);end;y[sum]:=k;end;end;end;if sum=0 then begin write(0); exit; end;for i:=1 to m dofor j:=1 to n do boo[i,j]:=true;for i:=1 to m dofor j:=1 to n dobeginfind(i,j);//找最优解呀QAQend;write(main);//输出
end.

这是一道玄学难题,难度挺高的,辛苦调了2个小时,,,

这篇关于P1930 亚瑟王的宫殿的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/772483

相关文章

2)如何去构建记忆宫殿辅助记忆

构建记忆宫殿 记忆方式构建记忆宫殿后记 记忆方式 记忆方法多种多样,旨在帮助人们更有效地编码、储存和回忆信息。以下是一些常用和有效的记忆方法: 1.联想记忆法:通过将新信息与已知信息或图像进行创意性联想来加深记忆。例如,将新学习的词汇与一个有趣的故事或图像关联起来。 2. 故事法(叙事法):将一系列信息编织成一个有逻辑、易于记忆的故事。这种方法利用人类对故事的天生记忆优势。

USACO Training 3.3.3 Camelot 亚瑟王的宫殿 题解与分析

Camelot亚瑟王的宫殿 IOI 98 描述 很久以前,亚瑟王和他的骑士习惯每年元旦去庆祝他们的友谊。为了纪念上述事件,我们把这些是看作是一个有一人玩的棋盘游戏。有一个国王和若干个骑士被放置在一个由许多方格组成的棋盘上,没有两个骑士在同一个方格内。 这个例子是标准的8*8棋盘 国王可以移动到任何一个相邻的方格,从下图中黑子位置

【课程发布】软考高项目十大管理ITTO宫殿记忆法新版第四版正式发布

软考高项十大管理ITTO宫殿记忆法视频课程: 平台:荔枝微课 连接:十方教育 各位软考高级信息系统项目管理师考生好,新版第四版十大管理ITTO宫殿记忆法视频课程终于发布了,之前苦等的考生终于迎来了救星,再也不用担心记不住ITTO了。 宫殿记忆法,49张图片记住49个过程ITTO,记忆过程不枯燥,记忆效果非常好,甚至可以倒背如流。 宫殿记忆法最快只要1天24小时就能全部记完,一天一

[BZOJ 4008][HNOI2015]亚瑟王:期望DP

点击这里查看原题 f[i][j]表示第i张卡在第j回合被轮到(但不一定发动)的概率。 f[i][j]= f[i-1][j] * ( 1-p[i-1] ) ^ j + f[i-1][j+1] * ( 1- ( 1-p[i-1] ) ^ ( j+1 ) ) ,ans+=f[i][j] * ( 1 - ( 1 - p[i] ) ^ j ) * d[i]。 /*User:SmallLanguag

学习记忆——宫殿篇——记忆宫殿——记忆桩——身体——记忆星座

我们在与人攀谈的时候,可以从以下几个维度入手,如:年龄、星座、爱好、工作等。 两点记忆的技巧以及一点知识延伸 两点记忆技巧: 1、第一次见面时要创建回忆线索 2、脑中回忆交流画面,加深线索 一点知识延伸: 1、二次见面通过线索找寻话题切入点 例:今天你与我在咖啡厅见面,我们聊了关于如何提升记忆力和脑科学神经语言这方面的话题,现在有以下信息:家是东北的,狮子座,喜欢极限挑战等等。 联想:卢菲菲

学习记忆——数学——知识+记忆篇——记忆宫殿绘画图像法

文章目录 明确需放置的大件物品将信息与家具对应放置小金库床——系列床罩床头柜床尾游泳池床 shu——系列书桌梳妆台书桌与梳妆台中间架木板 衣柜外院道路水池工人图纸树木笼子 明确需放置的大件物品 (算术) 1.实数 无理数:常见无理数数值 整数:奇数、偶数、质数、合数 整除、公倍数、公约数 2.比 3.绝对值 (代数) 1.整式、分式 (1)整式:运算、因式定理 (2)分式:

[HNOI2015]亚瑟王 题解

[HNOI2015]亚瑟王 [HNOI2015]亚瑟王 根据期望的线性性质,我们考虑每一张牌的贡献。也就是每一张牌被使用的概率。 显然第一张牌使用的概率就是 1 − ( 1 − p 1 ) r 1 - (1 - p_1) ^ r 1−(1−p1​)r。 但是发现之后的牌的使用依赖于前面的牌的使用,因为如果前面有 j j j 张牌被使用了,相当于有 j j j 轮对于当前牌是

学习记忆——题型篇——写作——记忆宫殿法

1.什么是数字记忆法? 答: 数字记忆就是把每一个数字转换成图片编码后再进行联想速记。 2.数字记忆法的用途有哪些? 答: 可以记忆学科知识,如地理、历史等所有学科或考试中的数据信息;可以速记生活中的信息,如生日、账号、密码等信息。可以作为记忆宫殿速记购物清单或整书记忆;可以作为训练大脑的记忆工具,快速提升想象力、创造力。 3.如何运用数字记忆法记忆? 答: ①熟记数字编码,看到任何一个数字都可以

学习记忆——数学篇——代数——记忆宫殿——卧室

明确需放置的大件物品 整式、分式 (1)整式:运算、因式定理 (2)分式:运算函数、方程与不等式 (1)函数:一元二次函数、 (2)方程:一元二次方程、二元一次方程组、特殊方程(指数、对数、分式方程) (3)不等式:一元二次不等式、均值不等式、数列 (1)等差数列:项(通项,中项)、和(求和,下标和,连续等差片段和)、比(奇数项与偶数项和之差与之比,相同的奇数项和之比)、数列的判定、轮换对称性、

学习记忆——题型篇——写作——记忆宫殿法

1.什么是数字记忆法? 答: 数字记忆就是把每一个数字转换成图片编码后再进行联想速记。 2.数字记忆法的用途有哪些? 答: 可以记忆学科知识,如地理、历史等所有学科或考试中的数据信息;可以速记生活中的信息,如生日、账号、密码等信息。可以作为记忆宫殿速记购物清单或整书记忆;可以作为训练大脑的记忆工具,快速提升想象力、创造力。 3.如何运用数字记忆法记忆? 答: ①熟记数字编码,看到任何一个数字都可以