摘要: c++专题七(图论) 存图 1.邻接表 vector<int> g[N]; //带边:vector<pair<int,int>> g[N]; void add(int x,int y){ g[x].push_back(y); } //或者: for(int y:g[x]){ } 最短路 1.Floy 阅读全文
posted @ 2025-02-19 23:47 佘雅晴 阅读(30) 评论(0) 推荐(0)
摘要: c++专题六学习(dp) 当题目同时满足具有最优子结构,没有后效性时,可以用动态规划 背包dp 1.0-1背包 题意概要:有n 个物品和一个容量为 W 的背包,每个物品有重量 wi和价值 vi两种属性,要求选若干物品放入背包使背包中物品的总价值最大且背包中物品的总重量不超过背包的容量。 每个物体只有 阅读全文
posted @ 2025-02-16 22:05 佘雅晴 阅读(23) 评论(0) 推荐(0)
摘要: C++专题五学习(深度算法) 深度优先探索(DFS) 适用全排列问题等需要列举出全部情况的 (配合递归 大致模版: void dfs(...){ if(递归结束条件){ ...; //计入答案 return; } for(int i=0;i<n;i++){ //有的有循环有的没有 if(需要满足的条 阅读全文
posted @ 2025-02-13 20:22 佘雅晴 阅读(27) 评论(0) 推荐(0)
摘要: c++专题四学习日记 1.整除 存在整数k使得a=b*k;称为b整除a,记作b|a 2.同余 如果a-b=km (k∈Z),则a与b模m同余,记作a≡b(mod m) (a mod b :a%b 3. GCD最大公约数 辗转相除法(欧几里得算法): 若 a=b*q+r(0≤r<b) 则 gcd(a, 阅读全文
posted @ 2025-02-10 22:43 佘雅晴 阅读(54) 评论(0) 推荐(0)
摘要: C++专题三学习日记 stack(栈) 仅支持查询或删除最后一个加入的元素(栈顶元素) 函数名 功能 时间复杂度 top() 返回栈顶元素 O(1) empty() 判断是否为空 O(1) size() 返回元素个数 O(1) push() 在栈顶插入元素 O(1) pop() 删除栈顶元素 O(1 阅读全文
posted @ 2025-02-07 18:48 佘雅晴 阅读(41) 评论(0) 推荐(0)
摘要: c++专题二学习日记 二分法 1.基本模版 (1)l<=r int l,r,ans; while(l<=r){ int mid=l+r >> 1; if(check(mid)) ans=mid,l=mid+1; else r=mid-1; } return ans; (2)l<r int l,r; 阅读全文
posted @ 2025-01-26 18:26 佘雅晴 阅读(38) 评论(0) 推荐(0)
摘要: C++ 框架&输入输出 #include <iostream> using namespace std; //写了这个之后使用标准库组件前面就不用写std:: int main(){ ​return 0; } 输入 std::cin>>x 输出 std::cout<<"hello world"<<s 阅读全文
posted @ 2025-01-23 18:40 佘雅晴 阅读(24) 评论(0) 推荐(0)