今天讲基础数据结构 首先讲(二叉搜索树) 保证左儿子小于右儿子,那么对于根节点来说.大于根节点的放到右子树递归,小于根节点的放在左子树 相等的呢?某大佬(老师)这么说: 删除的前提是找这个点在哪: 如果两个儿子咋办. 再回忆一遍:左儿子的值小于父亲节点的值 右儿子的值大于父亲节点的值 搞一个高度为logn的搜索树: 对于二叉搜索树,它可以通过中序排列大小: 然后是堆. 堆是?https://www.cnblogs.com/lbssxz/p/10776682.html 在堆中插入一个元素,将其与父…
今天是最后一天 今天讲noip真题: ‘’ ‘’‘’ 课程终于还是上完了,收获比上一次多!…
今天讲图论 图是啥?(白纸上的符号?) 对于一个拥有n个顶点的无向连通图,它的边数一定多于n-1条.若从中选择n-1条边,使得无向图仍然连通,则由n个顶点及这 n-1条边(弧)组成的图被称为原无向图的生成树. 换句话说,有边有点就是图.(本蒟蒻的理解是这样..QWQ) 另外,还有一些与图有关的定义(很好理解,通俗一点): 阶:图中点的个数. 边:两个点间的连接 权值:边的长度 ...想了解更多找度娘,她可能讲的比我通俗QWQ. 邻接矩阵: 存图方式:邻接矩阵,链式前向星 1.邻接矩阵:用两个角标…
清北学堂2017NOIP冬令营入学测试 P4745 B's problem(b) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试 描述 题目描述 小B生活在一个很奇怪的国家里,这个国家的钱的面值只有可能是25,50,100的.小B最近在做社会实践,这次它选择在一个餐厅里干这件事情.但今天发生了一件有趣的事,这件事情是这个样子的,餐厅里大家都在排队买饭,粗心的打饭阿姨忘记要带零钱,并且所有排队打饭的人只带了一张钱. 具体地,第i个人带了一张…
清北学堂2017NOIP冬令营入学测试 P4744 A's problem(a) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试题,每三天结算一次成绩.参与享优惠 描述 这是一道有背景的题目,小A也是一个有故事的人.但可惜的是这里纸张太小,小A无法把故事详细地说给大家听.可能小A自己也讲不清楚自己的故事,因为如果讲清了,也就没有这道题目了-- 小A的问题是这个样子,它找到了n份不同的工作,第i份工作每个月有ai的工资,每份工作需要小A每天…
快住手!这根本不是暴力! 刷了一整天的题就是了..上午三道题的画风还算挺正常,估计是第一天,给点水题做做算了.. rqy大佬AK了上午的比赛! 当时我t2暴力写挂,还以为需要用啥奇怪的算法,后来发现,只需要把t1的std改上两行就是t2的std.... t3是比较有水平的,与线段覆盖有关的题.正解思路二分+并查集,想法挺巧妙. (上午考试结束之后抽奖发明信片,看到屏幕上的158,我感觉幸福来得太突然了... (是不是我这两天炉石不开橙把非气都用干净了?233 人家清北学堂倒是挺客气,连U盘都发.…
今天是李昊老师的讲授~~ 总结了一下今天的内容: 1.高精度算法 (1)   高精度加法 思路:模拟竖式运算 注意:进位 优化:压位 程序代码: #include<iostream>#include<algorithm>#include<cstdio>#include<cmath>#include<cstring>#include<cstdlib>using namespace std;char a1[1000],b1[1000];i…
今天是丁明朔老师的讲授~ 数据结构 绪论 下面是天天见的: 栈,队列: 堆: 并查集: 树状数组: 线段树: 平衡树: 下面是不常见的: 主席树: 树链剖分: 树套树: 下面是清北学堂课程表里的: ST表: LCA: HASH: 堆 支持两种操作: 1.插入一个值: 2.删除一个最大值(大根堆)或最小值(小根堆): 需要使用STL里的 priority_queue 或手写: LCA 结点 A 和结点 B 的最近公共祖先 LCA 及以上都是 A 和 B 的公共祖先: 注意 LCA 是尽局限于树上的…
今天是冯哲老师的讲授~ 1.枚举 枚举也称作穷举,指的是从问题所有可能的解的集合中一一枚举各元素. 用题目中给定的检验条件判定哪些是无用的,哪些是有用的.能使命题成立的即为其解. 例一一棵苹果树上有n个苹果,每个苹果长在高度为Ai的地方.小明的身高为x他想知道他最多能摘到多少苹果数据范围: 1 ≤ n, Ai, x ≤ 100 题解问题相当于询问有多少i满足Ai <= x考虑用for循环枚举每一个苹果是否能被摘到即可. 例二判断一个数X是否是素数1 ≤ X ≤ 109 题解考虑定义,若X为合数,…
今天是第二次培训的第一天,关于NOIP的基础算法,主要内容如下: $1.枚举 $2.搜索 $3.贪心 $1.枚举: •定义: 枚举又叫做穷举,是一种基础的算法,其思路主要是:从问题中有可能的解集中一一列举出可能的解,再使用各种奇奇怪怪的方式将正确的答案找出 (接下来做几道题玩玩咯) •例(1) 题目:一棵苹果树上长有n个苹果,每个苹果距离地面的高度用Ai来表示,小明的身高为h,试编一个程序求出小明最多能摘掉几个苹果. 分析:其实也么啥好分析的,就是将小明的身高和苹果的高度进行比较,如果苹果的高度…
今天还是冯哲老师的讲授~~ 今日内容:简单数据结构(没看出来简单qaq) 1.搜索二叉树 前置技能 一道入门题在初学OI的时候,总会遇到这么一道题.给出N次操作,每次加入一个数,或者询问当前所有数的最大值.维护一个最大值Max,每次加入和最大值进行比较.时间复杂度O(N). EX:入门题给出N次操作,每次加入一个数,删除一个之前加入过的数,或者询问当前所有数的最大值.N ≤ 100000. 引入二叉搜索树(BST): 特征:二叉搜索树的key值是决定树形态的标准.每个点的左子树中,节点的key值…
贪心方案: 答案是第三个策略 二分的一个重点是有顺序性,只有满足这个件才可以二分判断区间,否则你得自己构造顺序. 洛谷跳石头同题: 首先,我们要最小化最大跳远距离 代码如下(此题) #include<cstdio> #include<algorithm> #include<cstring> #define N 300005 using namespace std; int i,j,m,n,p,k,a[N],x;//r为right,l为left int check(int…
---恢复内容开始--- 今天全是DP awsl,真的好难 先从斐波那契开始: dp:满足有一个状态边界条件(f[0]=0,f[1]=1) 边界条件:不需要计算其他状态的值而可以直接得出的状态或者最底层状态(不能由其他状态推出来) 然后是状态转移方程:f[n]=f[n-1]+f[n-2](然后是矩阵加速或者递推..) 总之:边界条件,状态,转移方程为三大核心(其他都是一些题目变量.) 据说动态规划和dag(大哥)是等价的,但是图论后几天再讲..QWQ DP有这几种:(zhx大佬的神仙字体) 这是…
今天是钟神讲课,讲台上照旧摆满了冰红茶 目录时间到: $1. 动态规划 $2. 数位dp $3. 树形dp $4. 区间dp $5. 状压dp $6. 其它dp $1. 动态规划: ·以斐波那契数列为例,简单讲一下dp 1)对于斐波那契数列,有f0=0,f1=1,f2=1……fn=fn-1+fn-2 2)在上面的式子中,我们称f0=0为边界条件.推广到动态规划中,我们称不受其它元素的影响的元素为边界条件 3)在上面的式子中,我们称fn=fn-1+fn-2为转移方程 4)在上面的式子中,我们称f1…
P4744 A's problem(a) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试题,每三天结算一次成绩.参与享优惠 描述 这是一道有背景的题目,小A也是一个有故事的人.但可惜的是这里纸张太小,小A无法把故事详细地说给大家听.可能小A自己也讲不清楚自己的故事,因为如果讲清了,也就没有这道题目了-- 小A的问题是这个样子,它找到了n份不同的工作,第i份工作每个月有ai的工资,每份工作需要小A每天工作8小时,一周工作7天.小A想知道性价…
还剩一天半我就该回去了. 说实话今天挺可惜的,有很多本来可以得到的分数评测时没有拿到.上午的第一题和第二题我都想出了正解,T3敲了一个暴力,虽然暴力写坏了.预计是可以拿210的但是实际上只有很少的分数. 下午的第一题我的做法和正解不一样,我推了一个公式,整道题是一个O(n)的大递推.但是写完没有对拍(因为我2的i次方写错了,因为这个得多调了半个小时,zz) 不过今天老师讲课挺喜感233333晚上和我们聊NOIP的一些事情,基本上大家都是哄堂大笑2333333并且老师口音很有特点233333 (D…
为什么你们都说下午题简单?我反而觉得下午题难...因为上午暴力很好写啊... 第一题惊了是一道博弈论,冷静推理一大波推出了正解,就变成了结论题. 可是结论题不都是水题吗? T2是一道关于异或的题,照例打满暴力目标达成. T3是数据结构题,有人写了线段树,但那个题要维护区间第k大,有人说主席树,有人说平衡树... 我写的树状数组发现对性能不会有太大提升,遂直接暴力+大根堆维护第k大,成功拿到暴力分. (但其实..T2被卡了回车,T3忘了关调试...) mmp下午都是什么鬼题啊.T1一道图论题,我最…
枚举 用题目中给定的检验条件判定哪些是无用的,哪些是有用 的.能使命题成立的即为其解 . 例一 一棵苹果树上有n个苹果,每个苹果长在高度为Ai的地方.小明的身高为x 他想知道他最多能摘到多少苹果 数据范围: 1 ≤ n, Ai, x ≤ 100 题解 问题相当于询问有多少i满足Ai <= x,考虑用for循环枚举每一个苹果是否能被摘到即可. 例二 筛素数 判断一个数X是否是素数 1 ≤ X ≤ 1e9 考虑定义,若X为合数,则必然有: ∃1 < i < X, i|X 我们考虑直接枚举每个…
今天是钟皓曦大佬讲课,先来膜一波   %%%%% •数论 数论是这次培训的一个重点,那么什么是数论呢? 数论是研究整数性质的东西,所以理论上day2不会涉及小数QwQ (切入正题) •整除性: 设a,b ∈ Z,如果  c ∈ Z 并且 a = b * c,则称 b | a 称: b为a的因子 b能整除a a能被b整除  / /好像很简单的样子 •质数: 只有1和自身作为因子的数叫做质数 以 π(x)表示不超过x的素数个数,可以证明出以下结论(1): lim π(x) * ln x / x =…
Day 1; 1.常见的高精 输入输出都用字符数组: 字符数组的实际长度用strlen()来求: 运算时倒序运算,把每一个字符都-‘0’ 进位的处理上也要注意: 小数减大数时先判断大小然后加负号 只能用while不能用if    因为if只能去掉一个0,while去掉所有的前导零 高精减: 高精乘: 通过逐位相乘,进完位之后输出 2.特殊处理 高精数除以单精数 压位技巧: 把对十取模变成了%10000或者更长,对加和减没啥用,但是乘除的时候能够大量提高速度,复杂度为o(n/m); 在int下可以…
主要内容数据结构: 1.二叉搜索树 一棵二叉树,对于包括根节点在内的节点,所有该节点左儿子比此节点小,所有该节点右儿子比该节点大,(感觉好像二分...) 每个节点包含一个指向父亲的指针,和两个指向儿子的指针.如果没有则为空.每个节点还包含一个key值,代表他本身这个点的权值 常用操作: 插入一个数,删除一个数,询问最大/最小值,询问第k大值. 插入操作: 现在我们要插入一个权值为x的节点.为了方便,我们插入的方式要能不改变之前整棵树的形态.首先找到根,比较一下key[root]和x,如果key[…
有 $ n $ 个物品,每个物品有两个属性 $ a_i,b_i $ ,挑选出若干物品,使得这些物品 $ a_i $ 的异或和 $ x \le m \(.问在这一限制下,\) b_i $ 的总和最大可能为多少. 输入 输入文件名为xor.in. 第一行两个数 $n,m (n \le 32) $ 接下来n行每行两个数 $ a_i $ 和 $ b_i $ 输出 输出文件名为xor.out. 一个数表示答案 样例输入 4 5 1 2 2 1 3 3 4 1 样例输出 7 提示 [数据说明] 对于30%的…
题目描述 问有几个无序二元组 (x; y) 满足 xy ≡ 1 (mod P ); 0 ≤ x < P; 0 ≤ y <P.无序二元组是指,如果 P = 10, (3; 7) 和 (7; 3) 只算一次. 输入 一行一个正整数 P. 输出 一行一个数,表示答案. 样例输入 10 样例输出 3 [样例输入 2] 8000000 [样例输出 2] 1600004 [数据范围与子任务] Subtask1(20pts) $ P \le 10^3 $ Subtask2(30pts) $ P \le 10…
全天动态规划入门到入坑... 一.总概: 动态规划是指解最优化问题的一类算法,考察方式灵活,也常是NOIP难题级别.先明确动态规划里的一些概念: 状态:可看做用动态规划求解问题时操作的对象. 边界条件:不需要.或不能由别的状态推出,且已知.或可算出的状态.递推时就用边界条件推出所有状态. 状态转移方程:由已知状态推出未知状态所用的方式.或原则等,依照它可用已知状态推出未知状态. 动态规划(DP)主要有:线性DP,数位DP,区间DP,树形DP,状压DP和其他DP(难度较高的还有数据结构优化DP,博…
今天是杨思祺老师的讲授~ 图论 双连通分量 在无向图中,如果无论删去哪条边都不能使得 u 和 v 不联通, 则称 u 和 v 边双连通: 在无向图中,如果无论删去哪个点(非 u 和 v)都不能使得 u 和 v 不联通,则称 u 和 v 点双连通. u 到 v 的路径没有必经边和必经点. 割点:删去该点,图分裂为多个连通块. 割边:也叫 “ 桥 ”,删去该边,图分裂为多个连通块. 点双连通分量 类似地,定义 dfnu 和 lowu. 如果 v 是 u 的子结点,并且 lowv ≥ dfnu 则点…
今天是杨思祺老师的讲授~ 最短路练习题: POJ 1125 Stockbroker Grapevine 有 N 个股票经济人可以互相传递消息,他们之间存在一些单向的通信路径.现在有一个消息要由某个人开始传递给其他所有 人,问应该由哪一个人来传递,才能在最短时间内让所有人都接收到消息. 题解: 全局最短路,裸的 Floyd 不用说了,时间复杂度 O (n3): POJ 1502 MPI Maelstrom 给出 N 个处理器之间传递信息所需时间矩阵的下三角,求信息 从第一个处理器传到其它所有处理器…
今天是赵和旭老师的讲授~ 背包 dp 模型 背包 dp 一般是给出一些“物品”,每个物品具有一些价值参数和花费参数,要求 在满足花费限制下最大化价值或者方案数. 最简单几种类型以及模型: 0/1背包: 完全背包: 多重背包: 01背包 状态设置:dp [ i ][ j ] 表示前 i 个物品花了 j 的花费能选出物品的最大价值是多少: 状态转移方程: 如果我们选了第 i 个物品,那么前 i-1 个物品只能花 j - w [ i ] 的钱,再加上这个物品本身的价值: 如果我们不选的话,那么花费和前…
今天是林永迪老师的讲授~ 基础算法 1. 模拟算法 面向测试算法 模拟算法的关键就是将人类语言翻译成机器语言. 要做到以下两点: 1.优秀的读题能力: 2.优秀的代码能力: 程序流程图: 读入,循环处理指令,输出: 读题是很重要的,我们要考虑到用什么样的方法,怎么写: 主要就是要看懂四条规则然后往里面填数就好了,好像很简单,那就看这个题: 我们要先抓住核心部分: 手里有n张牌,有k(k<?)个规则,每个规则可以打出一定的牌,请问要打出最小多少次牌: 一个明显的深搜: void dfs(剩下多少张…
依然zhx讲. 讲了概率与期望: 期望:事件结果的平均大小.记作E(x). E(x)=每种结果的大小与其概率的乘积的和. 例如,记掷一枚骰子的点数为x E(x)=1*(1/6)+2*(1/6)+3*(1/6)+4*(1/6)+5*(1/6)+6*(1/6)=7/2 若c为常数,那么: E(x+c)=E(x)+c,E(c*x)=c*E(x). 如果记两个事件的结果分别为x,y,那么他们自然满足以下性质: E(x+y)=E(x)+E(y) 例如:E(语文成绩+数学成绩)=E(语文成绩)+E(数学成绩…
讲课人更换成dms. 真的今天快把我们逼疯了.. 今天主攻数据结构, 基本上看完我博客能理解个大概把, 1.LCA 安利之前个人博客链接.之前自己学过QWQ. 2.st表.同上. 3.字符串哈希.同上. (貌似我好像都学过的样子.不过dms讲的是真的好,声情并茂) 4,并查集.同上. 5,树状数组,同上. 6,线段树,同上. 树状数组主要出现形式:逆序对,二位偏序,多个树状数组. 然后讲了一下午树状数组,线段树. 晚上讲splay... 到了晚上,然而并没有听懂什么,,只是看着dms打代码发呆,…