上一页 1 ··· 5 6 7 8 9 10 11 12 下一页
摘要: 想要完全理解还是有些困难的,这里简单叙述一下思路: 在求next数组时,把“后缀”的p串固定在上方,依次遍历每个元素作为截断的末尾,通过移动下方的p串使其前缀与上方p串的后缀重合,求出其next。 假设已经求出了next[i-1] = j, 考虑next[i] 如果p[j+1] == p[i], 什 阅读全文
posted @ 2021-10-25 21:48 _vv123 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 遭受了普及-的智商碾压orz 其实就是说 两个人相遇后调头, 和互相穿过 完 全 等 价 啊 !!! 想到这一点就是入门-了吧 #include <iostream> #include <algorithm> using namespace std; const int maxn = 5e3 + 1 阅读全文
posted @ 2021-10-06 19:36 _vv123 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 事打开洛谷题库就会映入眼帘的一道题。(P1005) 显然每一行是相互独立的,只需要分别求出答案再加起来。 如果问题不好下手,不妨采取逆推的思路:倒着取,先任意取一个,然后每次从已取区间左边或右边取一个,第i次的得分是$2^{m-i+1}$。显然,我们可以用区间DP来解决。 状态:设$f_{i,j}\ 阅读全文
posted @ 2021-10-06 16:56 _vv123 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 首先回顾矩阵乘法的定义 \(c_{ij}=\sum_{i=1}^{k}a_{ik} \times b_{kj}\) 显然,对$F_{n}=F_{n-1}+F_{n-2}$这样的柿子,我们可以用待定系数法求得递推矩阵: 设$f_{n}=\begin{bmatrix} F_{n} & F_{n-1} \ 阅读全文
posted @ 2021-10-06 15:00 _vv123 阅读(67) 评论(0) 推荐(0) 编辑
摘要: insert函数结合矩阵加对后续元素的影响不难写出。 最后求和的时候,考虑到每次对b[i][j]的影响包含了其本身,只需加等于前面元素带来的影响。 1 #include <iostream> 2 using namespace std; 3 4 const int maxn = 2e3 + 10; 阅读全文
posted @ 2021-09-30 23:54 _vv123 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 我再也不手写栈了。。。 后缀表达式求值: 建立一个数据栈 如果遇到一个数,把它入栈 如果遇到运算符,弹出栈顶两个数,运算后把结果入栈 中缀转后缀: 建立一个运算符栈 如果遇到一个数,直接输出 如果遇到左括号,入栈 如果遇到左括号,不断弹栈直到栈顶为左括号 如果遇到运算符,不断弹栈直到栈顶的优先级高于 阅读全文
posted @ 2021-09-28 20:35 _vv123 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 调试漫谈:如果用vscode调试一定要保证路径和文件名没有中文 单链表 这个比较简单,注意插入在某个数的右边,应该先将“待改动”的数作为被赋值数。也就是说一定要先ne[idx] = head / ne[k],再考虑ne[k]/head = idx init: null -> -1 after: x 阅读全文
posted @ 2021-09-28 17:32 _vv123 阅读(40) 评论(0) 推荐(0) 编辑
摘要: SPFA是很简单的:普通队列,用du + w更新dv即可。判断是否in queue可以提高速度。 1 void spfa() { 2 memset(d, 0x3f, sizeof d); d[1] = 0; 3 q.push(1); inq[1] = true; 4 while (!q.empty( 阅读全文
posted @ 2021-09-24 00:15 _vv123 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 二分图的判定 核心思路 if (!color[v]) { if (!dfs(v, 3 - c)) return false; } else if (color[v] == color[u]) return false; 完整代码 #include <iostream> #include <vecto 阅读全文
posted @ 2021-09-16 23:29 _vv123 阅读(28) 评论(0) 推荐(0) 编辑
摘要: Experience: 1.如果本地ac而oj上re,很有可能是数组开小了 2. typedef int State[9];//相当于一种结构体,在st中作为数组的第二维 3.Cantor板子 int code = 0; for (int i = 0; i < 9; i++) { int cnt = 阅读全文
posted @ 2021-09-12 20:40 _vv123 阅读(91) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 下一页