笔记
文章平均质量分 75
丿空城↾灬孤
小白一枚
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
暑期集训(7) 队列与BFS
队列与BFS一.队列1.定义2.特点与理解3.五种写法1>手写队列2>STL队列3>小/大根堆优先队列4>普通优先队列5>结构体优先队列4.例题1)合并果子5.模板6.尺取法最短子序列&&队列&&尺取法二.BFS(广搜)1.定义2.模板3.例题1>洪水升级版2>迷宫3>填涂颜色总结 一.队列 1.定义 一种受限制的线性表 我们可以从队列末尾插入一个元素,可以从队列开头删掉一个元素, 也可以查询队列开头是什么 就像在食堂买饭不能插原创 2021-07-12 21:27:36 · 358 阅读 · 0 评论 -
暑期集训(6) 栈与DF
栈与DF一.栈1.定义2.两种写法==手写====STL==3.STL特殊函数4.例题<1>模拟栈1)思路2)代码实现<2>括号匹配加强版思路代码实现二.搜索之DFS1.定义2.如图3.两种写法==递归====栈==4.剪枝最优性剪枝1)定义2)方式&例题重复性剪枝1)定义2)方式&例题奇偶性剪枝1)定义2)方式&例题可行性剪枝1)定义2)方式&例题5.例题总结 一.栈 1.定义 一种受限制的线性表,我们可以操作的……只有最后一个元素 我们可以从栈的最原创 2021-07-11 21:27:29 · 135 阅读 · 0 评论 -
暑期集训(4) 二分(与快速幂)
二分与快速幂_φ(❐_❐✧ 二分与快速幂1.二分概念1).官方解释2).个人理解2.二分模板如下3.二分例题(附带快速幂)《1》.A的B次方(快速幂裸题)<1>思路<2>快速幂写法与代码《2》.逆序对统计<1>.思路<2>.代码《3》.越狱(数论+快速幂)<1>.思路<2>.代码实现总结 _φ(❐_❐✧ 二分原创 2021-07-09 20:56:27 · 184 阅读 · 0 评论 -
暑期集训(3) 贪心
贪心一.概念1)官方解释2)个人理解3)步骤4)特点二.例题及延伸证明&优化方法1.国王的游戏1)思路2)60分代码本蒟蒻不太会用高精度QWQ3)应用方案---对数证明2.最大的子序列和1)思路2)代码3)延伸方法--尺取法4)延伸例题--最短自序列<1> 思路<2> 代码3.最大整数1).思路2).代码总结 一.概念 1)官方解释 贪心法是一种解决最优问题的策略。它是从问题的初始解出发,按照当前最佳的选择,把问题归纳为更小的相似的子问题,并使子问题最优,再由子问题来推导出原创 2021-07-08 21:19:35 · 196 阅读 · 0 评论 -
暑期集训(2) 递归与递推
递归与递推一.递归1.概念(P.S)个人理解2.例题1)整数划分思路与代码2)【USACO 2020 Open】Cereal思路与代码<1>客观解法<2>个人理解<2>注释+代码二.递推1.概念与区别1)区别2)优点2.例题 一.递归 1.概念 在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。递归式方法可以被用于解决很多的计算机科学问题。绝大多数编程语言支持函数的自调用,在这些语言中函数可以通过调用自身来进行递归。 重点:重复,分解,函数,调用自身原创 2021-07-07 20:03:26 · 366 阅读 · 0 评论 -
暑期集训(1) 枚举,模拟;前缀和与差分
1.枚举 枚举在于尽可能的拿到可以拿到的数据范围内的分数 对于已给出并不是较大的范围内,合理计算时间复杂度 在于保留列举所有可能的情况 例题 这道题题目分析完全后,就可以从大到小依次枚举 但远没有这么简单 见到这个数,我们可以将他分解成2进制表示的数 统计其中2进制中的“1”出现的频率 易得: “1”的个数需小于枚举的数 同时,有一个易错的point 特判统计的次数“ans”<=n即可解决 核心代码: 转二进制 int de1(int k) { int temp=0; while(k) {原创 2021-07-06 21:22:47 · 204 阅读 · 0 评论 -
2021-5-5 信息总结 (分治与二分)
1.分治 顾名思义,即“分而治之”,将一个或多个大问题拆解成多个小问题,并 通过一定的方法将其连接起来,寻找特殊解加入 例如比赛安排这道题 看到图片,我们可以找寻规律 将其分为四个象限,以此类推 每一个大区域,都可以理解为左上角,右上角,左下角,右下角 找寻对应关系即可 最后用一个大的for循环for(int i=1;i<=n;i++) 来排列次数,内部镶嵌小循环,二维数组即可 还有一个易错点 每个字符占三个字符 所以我们可以使用setw函数 这就是典型的分治思想 2.二分 个人认为二分是分治的一原创 2021-05-05 01:03:45 · 135 阅读 · 0 评论 -
2021-5-14 &递归,递推,记忆化搜索总结
递归,递推,记忆化搜索总结 将这三种相似的算法(?)一起做出比较 以便于更好的复习(? ) 一.递归、记忆化; 一个函数在他的函数体内调用它自身称为递归调用,这种函数称为递归函数。执行递归函数将反复调用自身(也就是相当于嵌套函数),每一次的调用就进入新的一层函数,执行到最后结束的那一行代码就开始从里面一层一层的退出函数 而这里有一些技巧 边界值,判断退出递归条件 递归特性,递归输出的前后逻辑 通过记忆化空间换时间 不同情况下 void 与 int 的灵巧转换 回溯思想 1.边界值 一个递归如果没有边原创 2021-05-04 00:44:41 · 306 阅读 · 0 评论 -
题解:桐桐的组合/全排列
题目 代码如下: 全排列 #include<bits/stdc++.h> using namespace std; bool f[1005]; int a[15]; int n; void dfs(int k) { if(k==n) { for(int i=0;i<k;i++) { if(i==k-1) { printf("%d%c",a[i],'\n'); } else printf("%d%c",a[i],' '); }原创 2021-04-10 23:04:47 · 510 阅读 · 0 评论 -
2021-4-4 信息总结 (递归)
递归 个人理解:指一个函数自己调用自己 1.要点 边界值 例如: int gcd(int x,int y) { if(y==0) return x; else return gcd(y,x % y); } 这是最大公约数的递归函数 判断两数的最大公约数,用了辗转相除法 其中的边界值即为y被除掉,出结果 如果没有边界值,程序将会出现死循环的情况,函数不断调用自己,不会自己结束 2.例题 上图 挑一些重要的 公约数的核心已经说过,个人认为比较有挑战性且个人做出来的有以原创 2021-04-04 22:41:10 · 282 阅读 · 0 评论 -
2021-3-27 信息总结 (贪心)
贪心算法入门 1.定义 2.例题 挑一道典型的来说; 题目描述 输入一个高精度的正整数n(≤240位),去掉其中任意s个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小。 (仔细思考,这道题并不是很水) 输入格式 两行,每行一个整数: n(n为小于240位的整数) s 输出格式 最后剩下的最小数。 样例数据 input 178543 4 output 13 数据规模与约定 时间限制:1s1s 空间限制:256MB 我的伪代码: strin原创 2021-04-03 00:45:43 · 107 阅读 · 0 评论 -
2021-3-20 信息总结 (模拟)
今日所学:模拟类型 1.if(flag)与if(flag==true)含义相同 2.G. [usaco2019jan bronze]shell 果壳游戏 #include<bits/stdc++.h> using namespace std; int n; struct nut { int x; int y; int z; }a[110000]; int main() { freopen("shell.in","r",stdin); freopen("shell.out","原创 2021-03-27 12:37:25 · 186 阅读 · 0 评论
分享