11 2021 档案

摘要:思路 这道题主要还是学一下利用栈来模拟DFS的过程。只需要顺序遍历整个文本,然后对于不是此文本父节点的点弹出栈即可。同样,这个点要匹配的字符串的位置和父节点要匹配的字符串的位置相同。注意一下,如果父节点已经可以匹配了,那么这个节点还是要匹配最后一个字符串。非常牛呀这个思路,YCW YYDS! 代码 阅读全文
posted @ 2021-11-30 11:27 重言 阅读(41) 评论(0) 推荐(0)
摘要:思路: 这道题还是很难的,不过一步步分析下来就感觉还可以。首先求最大值最小问题,肯定就是使用二分法,在所有可能的答案范围内不断二分,直到找到第一个满足要求的时间,那就是最小值。然后,对于某个酒店,它运输某个食材的最短时间是可以求出来的,用dfs。这里是用了它到所有需要食材的酒店的路径和乘以2,再出发 阅读全文
posted @ 2021-11-28 16:32 重言 阅读(72) 评论(0) 推荐(0)
摘要:思路: 这道题我是暴力了,但是我知道应该用滑动窗口。因为很明显,当需要判断[i + 1, j + 1]的字符是否为异位字符时,我们可以利用[i, j]的信息,但是这里我不知道怎么办。 正确的思路是维护一个滑动窗口,如果当前窗口内的右指针指向的字符数量大于对应字符的数量,那么就不断地缩小窗口,直到小于 阅读全文
posted @ 2021-11-28 09:34 重言 阅读(41) 评论(0) 推荐(0)
摘要:思路: 这道题起始很简单就是说每次抽取一个数,然后把这个数消去再下一次随机抽取。 这里思路有两种:一是如果抽到这个数,就不需要把它从数组中删除,而是将他的值和最后一个元素的值进行互换,然后把SIZE - 1,这样就不需要用set,list这种,可以直接用下标访问元素,很快;或者如果说这个数的值是发生 阅读全文
posted @ 2021-11-27 20:18 重言 阅读(38) 评论(0) 推荐(0)
摘要:思路: 这道题用DP是肯定的。但是应该从1维DP开始看起,这里的数据ai表示1e5也说明了使用二维DP是不行的。使用一维DP,用f[i]表示a0~a[i]的所有选法数量.状态分割为所有最后一个区间的左端点,这样就可以作到不重不漏 反思: 这道题其实讲实话不算难,但是自己在考场上以现在的熟练度应该还是 阅读全文
posted @ 2021-11-25 17:17 重言 阅读(55) 评论(0) 推荐(0)
摘要:思路: 这道题就是典型的状态压缩DP+矩阵快速幂+DFS。这里主要学的思想是如果后一个状态推前一个状态的推法是固定的,那么就是一个固定的递推方程,所以可以用矩阵加快速幂来加速。而DFS是求最初的转移矩阵的好方法,因为我们需要直到第i列是什么样子,i列之前才可以填满,而且对应的下一列j的样子才是有效的 阅读全文
posted @ 2021-11-19 09:29 重言 阅读(32) 评论(0) 推荐(0)
摘要:思路: 这道题一开始还是暴力,得了32分。讲真的也是通过这道题了解到了矩阵快速幂这个算法,感觉在dp算法中非常好用,感谢CSP。 这里我只考虑S = 2的情况,看上一步有哪一个数能够到这一步来,然后每一次迭代就可以了,这就是递推,也是矩阵快速幂的用处。 代码: #include <iostream> 阅读全文
posted @ 2021-11-18 22:13 重言 阅读(28) 评论(0) 推荐(0)
摘要:思路: 这道题就是简单的数学题,只不过被n维吓住了而已,只需要按照二维的思路处理n维即可。 代码: #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <cmath> using 阅读全文
posted @ 2021-11-18 22:10 重言 阅读(36) 评论(0) 推荐(0)
摘要:思路: 这道题很明显使用BFS,因为BFS同时具有最短路径的特征,所以直接使用BFS即可 反思: 但是自己毕竟写图论的题目比较少,很多实现的细节没做好,导致最后只有30分。 总结如下: 1.如果是图中不可访问的点,那么直接将他设置为VISITED即可 2.由于BFS是每一层每一层增加的,所以对于多个 阅读全文
posted @ 2021-11-11 17:08 重言 阅读(39) 评论(0) 推荐(0)
摘要:思路: 这道题对我来说一开始想通过枚举找规律,然后确实发现了一点规律,但是是后缀的规律,只能说没有理论证明所以导致最后的结果并不正确。 这也说明了现在靠自学成才是不可能的事,需要系统理论的学习。 这里应该使用数位DP,也就是用不同的状态表示前面的数的属性,然后每次插入数据时根据状态进行转移,这里可以 阅读全文
posted @ 2021-11-10 22:41 重言 阅读(36) 评论(0) 推荐(0)
摘要:思路: 就是首先从S点出发,在DFS的过程中记录路径。如果路径路过了T,那么把路径上的点标作”可以到达目的地“。然后从每一个S可达但是在遍历的时候它不可以到达目的地的点开始DFS,如果它到了一个”可以到达目的地“的点,那么就把它路径上的点全部标作”可以到达目的地“。 反思: 首先这道题看题目理解题意 阅读全文
posted @ 2021-11-10 22:37 重言 阅读(33) 评论(0) 推荐(0)
摘要:https://zhuanlan.zhihu.com/p/26465701 阅读全文
posted @ 2021-11-09 11:14 重言 阅读(8) 评论(0) 推荐(0)