欢迎光临散文网 会员登陆 & 注册

超载融合-1

2022-06-29 12:23 作者:スレーブ_スレイヤー  | 我要投稿

26号的双周赛,就做出来第一道题......换作平时我肯定留下一句“我是傻逼”然后继续打LOL,但唯一一道我以为有可能做出来的题,赛后怎么都做不出来。

现在再看,“一壶茶,一包烟,一道题,做一天。”这句话只是在玩梗,因为有个SB做了整整三天:

事到如今没什么好多说的,就是单纯的猪脑过载,智商问题。题目本身难度不高,真的不高,但我就是想不明白,关键的地方就是想不出来。

我没看别人的题解,但扫了一眼这题的标准解法应该是并查集,但DFS也可以做,只是如果直接去DFS,结果就是会卡在n=100000,因为时间复杂度是n^2。

这就是最终的代码,是看了

以后想出来的。大佬用的是python,关键的思路是建图,但是Java没有图这种东西,用一个boolean二维数组代替图的话,会触发内存限制,最后改用List才通过,但内存占用还是高的离谱。

如果不看这个视频,我大概还卡在100000那个超时的例子上,而且就这还是花了两天想出来的,前几天的代码甚至基本的逻辑都是错的。

这是我不看题解的极限,一眼看过去就知道是屎一样的代码。也不知道为什么,我总是把简单的问题变得复杂,脑子好像有什么大坑一样,遇到问题首先不是冷静分析,而是先试着改代码,也不知道自己改的是什么,总之就是一顿改,最后自己都看不懂,能跑就跑,不能就再从0开始重复这个制造垃圾代码的循环。

有点匪夷所思,我都已经用visited记录找过的数字了,还额外用sacnned记录访问过的节点,还把访问过的节点置为-1。到底是有多NT才能写出这种代码。

还有那个恶心到极点的if else if,明明就可以把第一次调用和之后的调用用同样的逻辑整合起来,但我就是不,我就要写if else,还要把同样的逻辑在两个代码块里面分别复制一份。

还有这个from,既然已经记录找过的数字了,from的意义在哪。不,说到底,记录找过的数字和访问过的节点,两者选一个就行了,两件事都做显然重复了。

还有这个,从左找到右的想法。大概是示例那里形成闭环了,我就被误导觉得找到一个连通块就是从起点找能回到终点——这个想法贯穿了我所有的代码。

莫名其妙,意义不明。真的意义不明。

‘没力气吐槽这代码究竟有多不合理了。

中间还试过记忆化搜索,动态规划,但显然不是很适合这道题,也没做出个什么结果。

还有各种乱七八糟的解法,其实本质上都没有区别,等于说三天的思考百分之九十五都是无用功。




以后还是少说我是傻逼,我是fw之类的话,心理学的角度上来看可能真的就变成傻逼和fw了。这种事自己知道就好了,说出来只是别有用心。

总之老老实实做题,学习,思考就是了。智商的差距用经验是可以弥补的。

小目标:

1.每周都参赛。

2.做完前两道题。

3.困难题保证逻辑正确,时间和内存不考虑。

4.AK一次周赛。

超载融合-1的评论 (共 条)

分享到微博请遵守国家法律