摘要: 如题,是因为Container默认分配的内存大小不足导致,在docker run的时候加上--shm-size=2048m(表示运行内存为2048MB)即可 阅读全文
posted @ 2022-08-07 10:21 重言 阅读(343) 评论(0) 推荐(0)
摘要: 思路 拆点这种算法还是第一次见,不过能拿一点分还是可以接受吧。 主要就是说把点分为d[x][y], x表示某个点,y表示最后一次连续的小路长度。 这样对于一个d[x][y],如果它邻接的点对应的边是大路,那么就是d[u][0] = d[x][y] + w[i],否则就是d[u][y + w[i]] 阅读全文
posted @ 2021-12-03 10:12 重言 阅读(36) 评论(0) 推荐(0)
摘要: 思路 讲真的有限的东西直接暴力枚举就完事了,自己还是想太多了,这种题目应该是要拿下的。当时自己题目的意思也没理解,不应该。 代码 #include <iostream> #include <vector> using namespace std; int g[3][3]; int zeronum() 阅读全文
posted @ 2021-12-03 09:02 重言 阅读(42) 评论(0) 推荐(0)
摘要: 思路 典型的差分约束问题,只不过转化起来有点麻烦,注意转化的边界情况就行 代码 #include <iostream> #include <vector> #include <queue> #include <cstring> using namespace std; const int N = 3 阅读全文
posted @ 2021-12-02 22:14 重言 阅读(19) 评论(0) 推荐(0)
摘要: 思路 这道题是求最大值最小,所以很明显又是要用二分。自己没注意到是因为没有注意到所选边数小于等于n这个事,所以理解题意呀! 每次二分得到一个距离mid,如果能选不超过n条边,使得每条边的权值都小于mid,那么这个值就可以选。 由于这里只涉及边的个数,所以所有边的权都变成1了,所以用bfs+松弛操作就 阅读全文
posted @ 2021-12-02 20:40 重言 阅读(34) 评论(0) 推荐(0)
摘要: 思路: 这道题就是一个单点更新,区间查询的问题,所以用树状数组就行了。不过说实话,自己对第四第五题的态度需要改变一下。暴力可以,但是应该看到是运行超时,而不是错误。如果运行超时看下有没有极端情况可以跳过优化一下,不要想着暴力完了就完事了。 代码: #include <iostream> using 阅读全文
posted @ 2021-12-02 10:21 重言 阅读(23) 评论(0) 推荐(0)
摘要: 思路: 应该要将题目进行转化,转化为平时可以理解的形式。这里就是说求所有这样的点,其他点要么可以访问他,要么可以被他访问到,也就是说用两种边,一种是正向的,一种是反向的,然后dfs就行了。 代码: #include <iostream> #include <vector> #include <alg 阅读全文
posted @ 2021-12-02 09:19 重言 阅读(30) 评论(0) 推荐(0)
摘要: 思路 这道题主要还是学一下利用栈来模拟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)