美文网首页
2020-10-10爆破讲解有感

2020-10-10爆破讲解有感

作者: 仲夏二十 | 来源:发表于2020-10-10 21:08 被阅读0次

今天师兄给我们讲解了破例破解法:

开门见山,首先是一道很简单的爆破思路:

题目1

这是一道很简单的入门爆破题,或许在一开始,我们会直接从12345开始枚举,但是我们的复杂度会大大提高,变成10!,而使用暴力算法,我们能尽可能地优化复杂度。(附时间复杂度图)

时间复杂度

在优化处理中,我们直接遍历分母就好了,因为题目限制,所以分母肯定不会太大,因为分母太大分子就会超过5位数,所以我们可以暂定分目最大为50000(可以更小,但是没必要)。之后,我们再对分子和分母进行判定就好了。

师兄的代码

接下来,便是进阶的第二题:

题目2

所谓的全排列便是按照字典序排列,例如n=3,它的全排列就有6种:1 2 3,1 3 2, 2 1 3,2 3 1, 3 1 2, 3 2 1。就是每一个位置都要从从小的位置开始排列。

见到这题时,我的思路是先创建一个标记数组vis,先标记最小的数,然后再在其他未被标记的数字里面从小到大输出,再在下一轮中,标记第二大的数字,然后剩下的数字从小到大输出。但是我还没有想到怎么实现,没有想到用递归来去实现,后来师兄进行了讲解,让我对递归解法有了新的认识。

核心递归

这是该题的核心递归,首先进入第一层for时,我们设定一个开关f,里面的第二个for循环就是用来判断这个vis数组里面哪个数字已经被标记,当时看代码的时候我一直会忘了两个for循环会继续运行,所以想了很久才理解。

在最后,也是最难的一题,n皇后问题。

皇后问题

n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。也就是一个皇后所处的行列和对角线中没有别的皇后。

大体思路跟第二题差不多,不过得设定三个vis数组,第一个用来标记行列有无皇后。第二个左斜的话,我们可以将行列进行0,1,2.....的标记,我们可以看到左斜线上的行列标记和会相等。

左斜

右斜的话,我们将列-行,可以看到右斜线上的列-行的标记数相等,这便是第三个vis数组。

具体实现的话我还没搞懂......就放放师兄的代码吧。

相关文章

  • 2020-10-10爆破讲解有感

    今天师兄给我们讲解了破例破解法: 开门见山,首先是一道很简单的爆破思路: 这是一道很简单的入门爆破题,或许在一开始...

  • 2020-10-10-1

    2020-10-10

  • 梦境悬疑推理|X的死亡(4):寻找爆破点

    ————线索·爆破点———— 我从哪一个点切入解开这个梦境? 接下来,讲讲解开这一连串梦境的线索和一个爆破点。 第...

  • 思维导图推广策划案

    主要讲解商业思维导图的训练技巧及颠覆传统营销思维的爆破商道天机的营销体系,包括借力商业思维导图全面讲解企业管理规划...

  • cellchat安装记录

    R version 4.0.3 (2020-10-10) -- "Bunny-Wunnies Freak Out"...

  • 英语音标基础6

    二、不完全爆破 ① 爆破音中的任何两个爆破音相邻时,前一爆破音失去爆破。 如:a bi(g) car等。 ② 爆破...

  • 爆破

    爆破分为失去爆破和不完全爆破,爆破可以发生在一个单词中也可以发生在两个单词之间。 失去爆破是一个爆破音后面紧跟着一...

  • hydra爆破使用手册

    hydra参数介绍 hydra爆破场景 hydra爆破API接口或表单 hydra爆破ssh服务

  • 美国的送报员paper boy

    2020-10-10 美国的送报员是什么呢?The duties of a paperboy varied by ...

  • web安全 爆破cms

    通常我们在进行cms爆破(ps:日站)的时候,通常会采取exp任意文件上传的方法,下面以phpcms为例,讲解一下...

网友评论

      本文标题:2020-10-10爆破讲解有感

      本文链接:https://www.haomeiwen.com/subject/ocmjpktx.html