摘要: 自定义函数或类无法定位 Go 项目中,自定义的函数、类型等无法通过 “转到定义” 或 “查找引用” 功能进行定位。 解决方法 如果 Go 项目没有正确初始化为 Go 模块(即没有 go.mod 文件),gopls 将无法正确解析代码的依赖关系,也就无法提供跳转和引用功能。 初始化项目go.mod g 阅读全文
posted @ 2025-10-03 22:25 BreadCheese 阅读(15) 评论(0) 推荐(0)
摘要: 线程库的基本使用 创建线程 需要一个可调用的函数或者函数对象,作为线程入口。C++11中可以使用函数指针,函数对象或者lambda表达式实现,基本语法如下 #include <thread> std::thread t(function_name, args...); function_name是线 阅读全文
posted @ 2024-08-26 17:38 BreadCheese 阅读(78) 评论(0) 推荐(0)
摘要: 案例 ostream istream等基类为保护类型,是不可以拷贝构造的,所以我们可以使函数返回此基类的引用 代码示例 ostream& operator<<(ostream& out, MyInteger& myint) { out << myint.m_Num; return out; } 尝试 阅读全文
posted @ 2024-05-19 13:44 BreadCheese 阅读(187) 评论(0) 推荐(0)
摘要: 01背包 01背包模型 有一个容量为V的背包。商店有n个物品,每个物品有一个价值v与体积w,一个物品只能拿一次,问可以装下物品的最大价值。 有两个状态,拿或者不拿,用搜索要2^n种。 设状态dp[i][j]表示到第i个物品为止,拿的物品总体积为j的情况下的最大价值。我们不关心某个物品有没有被拿,只关 阅读全文
posted @ 2024-03-30 16:28 BreadCheese 阅读(47) 评论(0) 推荐(0)
摘要: 动态规划基础 线性DP DP(动态规划) 全称Dynamic Programming,将复杂问题分解为重叠子问题(与[[DFS]]不同),并通过子问题的解得到整个问题的解的算法。 状态 形如dp[i][j] = val的取值,其中i,j为下标,也是用于描述,确定状态所需的变量,val为状态值。 状态 阅读全文
posted @ 2024-02-20 00:24 BreadCheese 阅读(32) 评论(0) 推荐(0)
摘要: 回溯法简介 回溯法一般使用DFS(深度优先搜索)实现,DFS是一种遍历或搜索图,树或图像等数据结构的算法。上述数据结构不保存下来就是回溯法。 常见的是搜索树,排列型搜索树(节点数一般为n!)与子集型搜索树(节点数一般为2n)。 DFS从起始点开始,沿着一条路尽可能深入,直到无法继续回溯到上一节点为止 阅读全文
posted @ 2024-02-13 20:29 BreadCheese 阅读(55) 评论(0) 推荐(0)
摘要: 对二进制中的每一位进行逻辑操作,而不考虑整个数的数值大小 与位运算有关的特殊数据结构如[[树状数组]]或[[01线性基]] 一般对正整数进行运算 x >>= 1与x >> 1前者修改了x,后者仅做判断。 使用位运算时尽量使用unsigned int类型,抛弃符号位。 几种位运算 按位与AND & 只 阅读全文
posted @ 2024-02-06 18:27 BreadCheese 阅读(45) 评论(0) 推荐(0)
摘要: RMQ #include <bits/stdc++.h> using namespace std; #define int long long char* p1, * p2, buf[100000]; #define nc() (p1==p2 && (p2=(p1=buf)+fread(buf,1, 阅读全文
posted @ 2024-02-05 11:18 BreadCheese 阅读(11) 评论(0) 推荐(0)
摘要: O(logan)的时间复杂度 代码示例 #include <bits/stdc++.h> using namespace std; #define int long long #define mod 998244353 int a, b; int ksm(int a, int b) { int re 阅读全文
posted @ 2024-02-04 11:25 BreadCheese 阅读(7) 评论(0) 推荐(0)
摘要: 二分法简介 为一高效查找方法,将搜索范围一分为二。 适用于有序数据集合,利用单调性减少不必要的枚举。 解题步骤 研究数据结构的单调性。 确定最大区间[L,R],确保分界点一定在里头,若以R为答案,区间为[L+1,R](若为0到n,则L=-1,R=n),若以L为答案,答案区间为[L,R-1](同理)。 阅读全文
posted @ 2024-02-03 17:07 BreadCheese 阅读(37) 评论(0) 推荐(0)