摘要: 017.记忆化递归 优化暴力递归 递归层数太深会超时+栈溢出 对策 记忆化递归 剪枝 int f(int x){ if(x==1||x==2)return 1; return f(x-1)+f(x-2); } 记忆化 int F[101]={-1}; int f(int x){ if(x==1||x==2)return 阅读全文
posted @ 2025-12-21 23:55 射杀百头 阅读(15) 评论(0) 推荐(0)
摘要: 016.递归枚举 今日做luogu枚举题单,发现很多题目共性很强 类似题目在leetcode上也有不少 共性 从一个序列中按规定选取若干元素 “ 做选择 ” 产生了一颗选择二叉树 题目数据不强,暴力遍历即可找出答案 细节差异 选取元素的限制:数量,顺序,大小(子集,组合,排列的区别) 子集:不限制数量,顺序 组合:元 阅读全文
posted @ 2025-12-20 22:50 射杀百头 阅读(24) 评论(0) 推荐(0)
摘要: 015.模拟 做了几道模拟题,总结一下 动手之前一定要好好读题,遗漏信息大概率WA到死 不要怕麻烦,码量大是模拟题的特点 对算法要求一般不高 细心,逻辑链要完整 luogu P1563 处理环形数组 #include<bits/stdc++.h> using namespace std; namespace IO 阅读全文
posted @ 2025-12-19 21:17 射杀百头 阅读(3) 评论(0) 推荐(0)
摘要: 014.单调队列 区分优先队列 它们都有 O( 1 ) 的最值访问 c++标准库中就有priority_queue(优先队列) 而优先队列需要我们手动实现 优先队列priority_queue 二叉堆 O ( logn ) 的插入,删除 维护 全局 动态最值 优先队列 双端队列 / 静态数组 O ( 1 ) 的插入、 阅读全文
posted @ 2025-12-18 18:55 射杀百头 阅读(25) 评论(0) 推荐(0)
摘要: 013.质数筛 预处理 2 ~ n 的全部质数 埃氏筛 判断是否为质数 bitset<100005>ehrlich(int n){ bitset<100005>isp; isp.set();//初始化为1 isp[0]=isp[1]=0; for(int i=2;i*i<=n;++i){ if(isp[i]){ f 阅读全文
posted @ 2025-12-17 23:44 射杀百头 阅读(15) 评论(0) 推荐(0)
摘要: 012.匹配 匹配两个字符串 母串为 s 、子串为 t 当 t 在 s 中出现至少一次,匹配成功 匹配失败返回 -1 朴素匹配 当 t 的长度很短时,在 s 上枚举起点 int match(string &s,string &t){ int lt=t.length(); int ls=s.length(); fo 阅读全文
posted @ 2025-12-16 18:48 射杀百头 阅读(9) 评论(0) 推荐(0)
摘要: 011.并查集 并查集 #include<vector> using namespace std; class UnionFind{ vector<int>fa; public: //初始化 UnionFind(int n):fa(n){ for(int i=0;i<n;i++)fa[i]=i; } //查找父节点 阅读全文
posted @ 2025-12-15 22:07 射杀百头 阅读(15) 评论(0) 推荐(0)
摘要: 010.只是read( )、wr( ) 添加实用功能 同时读入+自动识别类型 template<typename T,typename...Args> void read(T&first,Args&...rest){ read(first); read(rest...); } //使用 int a; long long b; char c 阅读全文
posted @ 2025-12-14 21:28 射杀百头 阅读(12) 评论(0) 推荐(0)
摘要: 009.数组排序 十大排序 选择排序 冒泡排序 插入排序 希尔排序 快速排序 归并排序 堆排序 记数排序 基数排序 桶排序 以数组排序为例 对每个排序算法,我们主要关注其3个性质 时间复杂度 空间复杂度(是否原地排序) 是否稳定(对于相等的元素是否改变原相对位置) 题目链接 选择排序 #include<vector> 阅读全文
posted @ 2025-12-13 21:32 射杀百头 阅读(26) 评论(0) 推荐(0)
摘要: 008.高精+二分 P2293 [HNOI2004] 高精度开根 题目链接 题目描述 刘浩所在的工作组正在编写一套高精度科学计算的软件,一些简单的部分如高精度加减法、乘除法早已写完了,现在就剩下刘浩所负责的部分:实数的高精度开 m 次根。 因为一个有理数开根之后可能得到一个无理数,所以这项工作是有较大难度的。现在要做的 阅读全文
posted @ 2025-12-12 15:39 射杀百头 阅读(23) 评论(0) 推荐(0)