代码事实证明,我的ihu思路上没什么大错误(一)

P3695 赛亚龙!演讲开始之前

上一次小模拟之后,我觉得自己不能再颓废了,所以我来了一个大模拟。

然后这个问题花了我一个多星期

仍然是最糟糕的解决方案

@ >

但是,为了纪念我的第20个紫色问题和我这周的努力,我还是想写一个解决方案来记录我的每一点。

总体思路

模拟题根据题意直接模拟(雾。

此题适合分步完成。

关于变量

使用的变量大多是汉语拼音或缩略语或半缩略语(更容易调音)。

有些地方不用加注释,直接看拼音就可以明白意思。

成长过程1.输出、变量、赋值

一开始我也是这么想的:

首先完成输入变量、数组、赋值和输出。

输出

表达式的值可以直接计算输出。

变量和数组

使用了两个map,用于映射string与int或array的关系。

作业

类似输出,保存变量名,计算下面表达式的值。

查看代码了解详情。

很明显这个js是错的,没有判断和减法,:yosoro 2-1是错的。

数组的处理也有些错误。

20 分。

但我当时并不在意,所以我打电话给ihu。

两个.ihu

ihu的思路很简单,不考虑循环。

如果ihu有效,则依次执行;否则,将读取并跳过更深的数据。

layer number的定义大概就是每次遇到一个{layer +1,遇到} layer -1。

然后我稍微改了一下js,改善减法的维护。

代码

事实证明,我的ihu思维并没有大错。

30 分。

三个。数组

在我查看数据图表之后。

就是这样:

“不,应该是50?”

然后开始调试数组。

发现如果js使用递归,ls是全局变量,会被清空。

那我直接把它算成一个数……

没有考虑数组下标为变量的情况。

不过,50分刚交出来……

图片[1]-代码事实证明,我的ihu思路上没什么大错误(一)-唐朝资源网

代码

第四个.hor

从此开始有点恶心了。

由于重复操作,顺序操作可能不太容易,所以这里选择递归。

使用 zhixing 函数来存储对更深数的操作。使用loop循环递归处理。

但由于某种奇怪的原因,main函数中的知行是以读的形式执行的,而递归是以存储的形式执行的。

所以必须有一些判断来统一读取或存储的代码。

代码

但这只能执行单级循环,不能嵌套(不管是嵌套循环还是ihu)。

原因是,如果循环中嵌套了一个循环,则在递归执行到下一个循环时会执行getline函数。

然后添加一个判断条件。如果是第一个循环(严格来说是最外层的循环),则存储在更深的层次;否则,它将从先前存储的代码中找到要执行的代码。声明。

代码

duiy有用的一个简单例子:

{ vars
	a:int
	b:int
}
{ hor a, 1, 2
	{ hor b, 1, 2
		:yosoro b
	}

图片[2]-代码事实证明,我的ihu思路上没什么大错误(一)-唐朝资源网

}

输出没有duiy:

1 2 0 1 2 0 

添加对偶输出:

1 2 1 2 

如果将在循环中执行的语句如果输出是顺序的,那么没有duiy的应该是这样的(只有hor循环):

{ hor a, 1, 2
{ hor b, 1, 2
:yosoro b
}
{ hor b, 1, 2
:yosoro b
}
:yosoro b
{ hor b, 1, 2
:yosoro b
}
{ hor b, 1, 2
:yosoro b

}
:yosoro b
}

也就是说,循环结束后,会依次执行循环体。

应该……不难理解。

情感上理解它。

然后是 60 分。

这里的duiy统计比较简单,不考虑ihu未能hold住的skip和while语句。

五个.while

ihu和hor完成后,while很好。

因为 while 是 ihu 和 hor 的组合。

对了,我又修改了js函数。

修复了数组下标为前面提到的变量时的错误。

ihu 在循环中的跳过处理也得到了改进。

代码

可以发现此时知行函数有返回值。

这是判断是否需要跳过ihu。

而此时duiy函数的统计方式也变成了大括号的直接统计,而不是hor统计。

上交后,80分,两个TLE。

六套

通过下载数据可以发现变量和#6的集合的值之间没有空格,导致我的处理出现奇怪的错误(我的处理是用空格分割的)。

图片[3]-代码事实证明,我的ihu思路上没什么大错误(一)-唐朝资源网

既然如此,那么集合中的 , 无论如何都是绝对存在的,所以根据这个 , 来划分变量。

AC 代码

七。数组

“你如何实现你的向量?”

“直接用就行了。”

“如果是 9 怎么办?”

“嗯?哦,我先推回 1000 个零。”

“你呢?”

“好像是这样。”

虽然这段对话有点奇怪,但我们都明白对方的意思。

所以我用 int 数组替换了向量。

事实上,几乎是一样的(反正是最坏的解决方案)。

AC 代码

带有调试过程的代码

总结

个人觉得这个紫色的大模拟还是对编码能力的锻炼很有用。

除了过程有点煎熬,A掉了之后还是很开心的。

如果您对我的代码有任何疑问,可以私下问我。

在 2022 年 noip 之后退休。您仍然可以在退休前回复。

大学毕业后,我可能会去锣鼓或博客公园看看。

如果你觉得这个问题写得好,请不要吝啬你的点赞。

广告

博客园

© 版权声明
THE END
喜欢就支持一下吧
点赞226 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片