2022年8月20日
摘要: #include<bits/stdc++.h> using namespace std; //推荐写第一种 第二种是递归写法 int quickpower(int a,int b,int n) { int ret=1; while(b) { if(b%2==1) ret=ret*a%n; a=a*a 阅读全文
posted @ 2022-08-20 22:00 ljq0120 阅读(37) 评论(0) 推荐(0)
摘要: 栈,队列 // tt表示栈顶 int stk[N], tt = 0; // 向栈顶插入一个数 stk[ ++ tt] = x; // 从栈顶弹出一个数 tt -- ; // 栈顶的值 stk[tt]; // 判断栈是否为空 if (tt > 0) { } 队列 —— 模板题 AcWing 829. 阅读全文
posted @ 2022-08-20 21:58 ljq0120 阅读(26) 评论(0) 推荐(0)
摘要: C++ STL简介 vector, 变长数组,倍增的思想 size() 返回元素个数 empty() 返回是否为空 clear() 清空 front()/back() push_back()/pop_back() begin()/end() [] 支持比较运算,按字典序 pair<int, int> 阅读全文
posted @ 2022-08-20 21:57 ljq0120 阅读(29) 评论(0) 推荐(0)
摘要: 满足二分答案题的几个特征: (1)求最大/最小值; (2)答案离散(答案有有限种可能); (3)容易判断答案是否正确 二分答案题的做法即是: (1)确定答案区间; (2)在保证答案在区间内的前提下,逐步缩小区间; (3)当区间缩小到仅包含一个可能解时,该可能解即为答案。 while(l<=r){ l 阅读全文
posted @ 2022-08-20 21:56 ljq0120 阅读(21) 评论(0) 推荐(0)
摘要: 动态规划 重新学习动规,又有了新的体会 0-1背包 每种物品只取一次 不优化的表达式是 f[i][j]=max{f[i-1[j],f[i-1][j-w[i]]+c[i]}; f[i][j]与前一行有关所以可以用滚动数组优化(随时更新) 空间优化 滚动数组法 改进后方程 f[j]=max(f[j],f 阅读全文
posted @ 2022-08-20 21:41 ljq0120 阅读(11) 评论(0) 推荐(0)
摘要: www.kancloud.cn/kancloud/pack/70125顾z 的博客 背包问题 写这篇文章主要是为了帮帮新人吧,dalao勿喷.qwq 一般的背包问题问法 每种物品都有一个价值w和体积c.//这个就是下面的变量名,请看清再往下看. 你现在有一个背包容积为V,你想用一些物品装背包使得物品 阅读全文
posted @ 2022-08-20 21:38 ljq0120 阅读(22) 评论(0) 推荐(0)
摘要: dfs 执着,搜到底 切记回溯完一遍,要初始化,可能有对称性 递归回溯法算法框架[一] int Search(int k) { for (i=1;i<=算符种数;i++) if (满足条件) { 保存结果 if (到目的地) 输出解; else Search(k+1); 恢复:保存结果之前的状态{回 阅读全文
posted @ 2022-08-20 21:36 ljq0120 阅读(31) 评论(0) 推荐(0)
摘要: 广搜 一层层搜索,具有最短性 广搜主要解决的是最优问题,比如最短路径,最少步数 模板 int bfs() { 初始化,初始状态存入队列; 队列首指针head=0; 尾指针tail=1; do { 指针head后移一位,指向待扩展结点; for (int i=1;i<=max;++i) //max为产 阅读全文
posted @ 2022-08-20 21:33 ljq0120 阅读(50) 评论(0) 推荐(0)