03 2024 档案

摘要:reference problem 首先考虑最长公共子序列,需要两维数组,最长上升子序列,需要一维数组 由于最长公共子序列满足两个子序列相同,因此我们可以将二维数组的一维拿出来当作最长上升子序列的一维使用 故定义 f[i][j]:以 b[j] 结尾的最长公共上升子序列 阅读全文
posted @ 2024-03-20 11:46 光風霽月 阅读(153) 评论(0) 推荐(0) 编辑
摘要:题目链接 参考 在最长公共子序列问题中,状态的划分有两类: a[i]==b[j] f[i][j]=f[i-1][j-1]+1; a[i]!=b[j] f[i][j]=max(f[i-1][j],f[i][j-1],f[i-1][j-1]) 不过,考虑到 f[i1][j1] 阅读全文
posted @ 2024-03-20 09:42 光風霽月 阅读(25) 评论(0) 推荐(0) 编辑
摘要:erase : 说明:Removes from the list container either a single element (position) or a range of elements ([first,last)).This effectively reduces the conta 阅读全文
posted @ 2024-03-19 18:18 光風霽月 阅读(7) 评论(0) 推荐(0) 编辑
摘要:ref 阅读全文
posted @ 2024-03-18 16:04 光風霽月 阅读(1) 评论(0) 推荐(0) 编辑
摘要:ref1 ref2 阅读全文
posted @ 2024-03-18 14:39 光風霽月 阅读(4) 评论(0) 推荐(0) 编辑
摘要:题目链接 错误代码的 dfs 方式: void dfs(int u, int cnt) { if(u == n) return ; if(n - u + cnt < m) return ; if(cnt == m) // 再往下dfs没有意义了,剪枝 { dp(); return ; } d 阅读全文
posted @ 2024-03-18 11:10 光風霽月 阅读(15) 评论(0) 推荐(0) 编辑
摘要:砝码问题大体上就是一个问你在背包中选 n 个物品,体积为 j 的方案是否存在的问题,求解问题的方式可能稍有不同,但核心都是背包问题求方案是否存在。 Easy 题意:给定 n 个砝码,每个砝码的重量为 w[i],问随意选择 k 个砝码(1<=\( 阅读全文
posted @ 2024-03-18 10:25 光風霽月 阅读(20) 评论(0) 推荐(0) 编辑
摘要:在 bfs 中判重时,应优先在入队时进行判重,而不是在出队时进行判重,因为一个节点 u 在入队到出队的过程中,可能需要先出队很多其他节点 v,这就会导致其他节点出队且加入新节点的过程中,可能会重复加入多次节点 u,进而导致 queue 占用的空间过大,最后可能 阅读全文
posted @ 2024-03-17 23:26 光風霽月 阅读(5) 评论(0) 推荐(0) 编辑
摘要:reference1 reference2 shared_ptr 循环引用 #include <iostream> #include <cstring> #include <algorithm> #include <memory> using namespace std; struc 阅读全文
posted @ 2024-03-17 15:34 光風霽月 阅读(5) 评论(0) 推荐(0) 编辑
摘要:题目链接 阅读全文
posted @ 2024-03-10 21:22 光風霽月 阅读(2) 评论(0) 推荐(0) 编辑
摘要:reference pragma,希腊文,意思是“行动”,“实践”的意思,它是 C/C++ 的预处理命令 用法示例: message:在编译信息输出窗口中输出相应的信息。 #include <iostream> #pragma message("This is a test!") i 阅读全文
posted @ 2024-03-10 20:32 光風霽月 阅读(4) 评论(0) 推荐(0) 编辑
摘要:题目链接 1.有限制的 Bellman_Ford 时间复杂度: O(NM) 在传统的 Bellman_Ford 中,可以处理边数不大于 K 条边的最短距离 但我们只要加一条限制(实际上只多了两行代码) 就可以实现求恰好等于 K 条边的最短距离 具体的就在 阅读全文
posted @ 2024-03-10 20:24 光風霽月 阅读(8) 评论(0) 推荐(0) 编辑
摘要:Acwing 920 阅读全文
posted @ 2024-03-10 20:16 光風霽月 阅读(3) 评论(0) 推荐(0) 编辑
摘要:题面 题目链接 我们可以用拓扑序实现下面三种功能: 1.有唯一拓扑序 2.存在多个拓扑序 3.有环(不存在拓扑序) 经典的错误 一个经典的错误就是误认为,top_sort 开始阶段,入队时有大于 1 个节点入队拓扑序就不唯一,即: // -1: 不唯一 // 0: 不存在 // 1: 唯一 阅读全文
posted @ 2024-03-09 12:52 光風霽月 阅读(17) 评论(0) 推荐(0) 编辑
摘要:题目链接 思路:拆点 将一个节点 node 拆为 node[0]node[1],其中 node[0]node 的最短路,node[1]node 的次短路,如果不拆点的话,那么每个 node 只会出队更新其他节点一次(即 阅读全文
posted @ 2024-03-09 09:54 光風霽月 阅读(6) 评论(0) 推荐(0) 编辑
摘要:题目链接 思路:二分枚举答案 + dijkstra 验证答案 二分枚举答案 mid,通过 dijkstra 求最短路,将需要升级的边的权值看作 1,不需要升级的边的权值看作 0,这样求得的最小值就是需要升级的次数 这个将边权值根据需要设置为 0/1阅读全文
posted @ 2024-03-08 20:55 光風霽月 阅读(2) 评论(0) 推荐(0) 编辑
摘要:spfa 的优化都是基于 deque 的,我们通常使用 LLL 优化,代码简单,优化效果最好,详情可见参考这里,例题可以参考这里 1. LLL 优化(入队优化) Large Label Last 优化:思路就是将 dist 更大的点放入队尾,将 \(dist\ 阅读全文
posted @ 2024-03-08 20:00 光風霽月 阅读(27) 评论(0) 推荐(0) 编辑
摘要:01分数问题通常需要借助二分和图论 -- WIKI Example1 Example2 阅读全文
posted @ 2024-03-07 21:39 光風霽月 阅读(2) 评论(0) 推荐(0) 编辑
摘要:1. 01 背包求恰好装满方案数 HERE f[i][j]: 从前i个物品中选,体积正好为j的方案数 状态转移方程和 01 背包问题求最大价值是一样的 朴素版 #include <iostream> #include <cstring> #include <algorithm> us 阅读全文
posted @ 2024-03-04 14:26 光風霽月 阅读(83) 评论(0) 推荐(0) 编辑
摘要:// printf 四舍五入 printf("%m.nlf", x); // 保留n位小数,整个浮点数占m字符(包括整数部分,小数点,小数部分) printf("%0m.nlf", x); // 不满m字符补充前导0 /* example */ double x = 3.146; printf("% 阅读全文
posted @ 2024-03-03 11:37 光風霽月 阅读(239) 评论(0) 推荐(0) 编辑
摘要:一、剪枝优化 1.优化搜索顺序:有限考虑分支较少的搜索方式,常见的比如从大到小排序 2.排除等效冗余:排除等效的情况,本题就是很好的例子,稍后解释 3.可行性剪枝 4.最优性剪枝 二、本题的排除等效冗余 1.如果是木棒的第一段就搜索失败了,则一定搜不到方案 2.如果是木棒的最后一段搜索失败了,则一定 阅读全文
posted @ 2024-03-03 10:12 光風霽月 阅读(75) 评论(0) 推荐(0) 编辑
摘要:unordered_map::[] 查询或插入元素 阅读全文
posted @ 2024-03-02 19:51 光風霽月 阅读(2) 评论(0) 推荐(0) 编辑
摘要:1. 题目链接 城堡问题:这题需要你在二维数组上建立坐标系,并找出上下作用分别对应(x,y)的变化关系。 2. 对应关系(default) > y | | \/ x 3. QA 当然,这个对应关系并不是死的,xy 只不过是符号而已,下面的对应关系也没错 > x | | 阅读全文
posted @ 2024-03-02 15:43 光風霽月 阅读(63) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示