今天讲图论 图是啥?(白纸上的符号?) 对于一个拥有n个顶点的无向连通图,它的边数一定多于n-1条.若从中选择n-1条边,使得无向图仍然连通,则由n个顶点及这 n-1条边(弧)组成的图被称为原无向图的生成树. 换句话说,有边有点就是图.(本蒟蒻的理解是这样..QWQ) 另外,还有一些与图有关的定义(很好理解,通俗一点): 阶:图中点的个数. 边:两个点间的连接 权值:边的长度 ...想了解更多找度娘,她可能讲的比我通俗QWQ. 邻接矩阵: 存图方式:邻接矩阵,链式前向星 1.邻接矩阵:用两个角标…
---恢复内容开始--- 今天全是DP awsl,真的好难 先从斐波那契开始: dp:满足有一个状态边界条件(f[0]=0,f[1]=1) 边界条件:不需要计算其他状态的值而可以直接得出的状态或者最底层状态(不能由其他状态推出来) 然后是状态转移方程:f[n]=f[n-1]+f[n-2](然后是矩阵加速或者递推..) 总之:边界条件,状态,转移方程为三大核心(其他都是一些题目变量.) 据说动态规划和dag(大哥)是等价的,但是图论后几天再讲..QWQ DP有这几种:(zhx大佬的神仙字体) 这是…
今天讲基础数据结构 首先讲(二叉搜索树) 保证左儿子小于右儿子,那么对于根节点来说.大于根节点的放到右子树递归,小于根节点的放在左子树 相等的呢?某大佬(老师)这么说: 删除的前提是找这个点在哪: 如果两个儿子咋办. 再回忆一遍:左儿子的值小于父亲节点的值 右儿子的值大于父亲节点的值 搞一个高度为logn的搜索树: 对于二叉搜索树,它可以通过中序排列大小: 然后是堆. 堆是?https://www.cnblogs.com/lbssxz/p/10776682.html 在堆中插入一个元素,将其与父…
今天是最后一天 今天讲noip真题: ‘’ ‘’‘’ 课程终于还是上完了,收获比上一次多!…
目录 1. 题目 T1 a 题目描述 Sol T2 b 题目描述 Sol T3 c 题目描述 Sol T4 d 题目描述 Sol 2. 算法 - 贪心 & 数学 1. 贪心 2. 数学 2.1 初等数论 2.2 组合数学 2.3 线性代数 2.4 简单几何 1. 题目 T1 a 题目描述 题目描述 给一个仅包含字符 . 和 * 的字符串.问是否存在 \(3\) 个 *,它们的位置构成等差数列. 输入格式 第一行一个整数 \(n\) 表示字符串长度. 第二行一个字符串. 输出格式 yes 或 no…
清北学堂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. 空间复杂度O(n^2)不能接受:2.有重边的时候很麻烦: 优点很简单啦:好写qwq(是不是有点糊弄) 邻接表 一些vector的细节: 生成树 既然它是一颗树,那么应该满足无环! 比如这样它就是一颗有环树! 看个题: 实际上就是让你求最小瓶颈树!qwq 显然红色的更优! 这些是做这个题的做法: 并查集 Kruskal 判断是否构成环:并查集判断是否在一颗…
今天上午是钟皓曦老师的讲授,下午是吴耀轩老师出的题给我们NOIP模拟考了一下下(悲催暴零) 今天的内容——数论 话说我们可能真的是交了冤枉钱了,和上次清明培训的时候的课件及内容一样(哭. 整除性 质数的性质: √n判质数: 按照素数的定义:我们枚举从2到√n,若其中没有一个数是n的因子,则说明n是个质数! 证明为什么到√n: 若n有因数,则n可以写成a*b的形式,我们假设a<=b,若两个数都大于√n,则乘起来一定大于n呀,所以一定有个大于等于√n,一个小于等于√n,证毕! 所以说我们就有了一个直…
贪心方案: 答案是第三个策略 二分的一个重点是有顺序性,只有满足这个件才可以二分判断区间,否则你得自己构造顺序. 洛谷跳石头同题: 首先,我们要最小化最大跳远距离 代码如下(此题) #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…
P4744 A's problem(a) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试题,每三天结算一次成绩.参与享优惠 描述 这是一道有背景的题目,小A也是一个有故事的人.但可惜的是这里纸张太小,小A无法把故事详细地说给大家听.可能小A自己也讲不清楚自己的故事,因为如果讲清了,也就没有这道题目了-- 小A的问题是这个样子,它找到了n份不同的工作,第i份工作每个月有ai的工资,每份工作需要小A每天工作8小时,一周工作7天.小A想知道性价…
枚举 用题目中给定的检验条件判定哪些是无用的,哪些是有用 的.能使命题成立的即为其解 . 例一 一棵苹果树上有n个苹果,每个苹果长在高度为Ai的地方.小明的身高为x 他想知道他最多能摘到多少苹果 数据范围: 1 ≤ n, Ai, x ≤ 100 题解 问题相当于询问有多少i满足Ai <= x,考虑用for循环枚举每一个苹果是否能被摘到即可. 例二 筛素数 判断一个数X是否是素数 1 ≤ X ≤ 1e9 考虑定义,若X为合数,则必然有: ∃1 < i < X, i|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…
今天是钟神讲课,讲台上照旧摆满了冰红茶 目录时间到: $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…
全天动态规划入门到入坑... 一.总概: 动态规划是指解最优化问题的一类算法,考察方式灵活,也常是NOIP难题级别.先明确动态规划里的一些概念: 状态:可看做用动态规划求解问题时操作的对象. 边界条件:不需要.或不能由别的状态推出,且已知.或可算出的状态.递推时就用边界条件推出所有状态. 状态转移方程:由已知状态推出未知状态所用的方式.或原则等,依照它可用已知状态推出未知状态. 动态规划(DP)主要有:线性DP,数位DP,区间DP,树形DP,状压DP和其他DP(难度较高的还有数据结构优化DP,博…
今天是赵和旭老师的讲授~ 状态压缩 dp 状态压缩是设计 dp 状态的一种方式. 当普通的 dp 状态维数很多(或者说维数与输入数据有关),但每一维总量很少时,可以将多维状态压缩为一维来记录. 这种题目最明显的特征就是:都存在某一给定信息的范围非常小(在 20 以内),而我们在 dp 中所谓压缩的就是这一信息. (或者是在做题过程中分析出了某一信息种类数很少) 我们发现这个 m 是非常小的,这样就可以启发我们对每一行 2m 状态压缩. 设 dp [ i ][ S ] 表示到了第 i 行,第 i…
今天是杨思祺老师的讲授~ 图论 双连通分量 在无向图中,如果无论删去哪条边都不能使得 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(数学成绩…
题目如下: (想要作弊的后几届神仙们我劝你们还是别黈了,这个题如果你们不会只能证明你们上错班了). 好,题目看完了,发现是一道大模拟(%你)题,于是我们按照题目说的做: #include<iostream> using namespace std; long long gcd(long long a,long long b)//gcd函数求最大公约数 { if (!b) return a;//b!=0 else return gcd(b,a%b); } int main() { long lo…
今天主攻图论. 对于这道题,30分做法是暴力搜索全部来判断是否有异样. 对于满分做法,利用带权并查集.? 又带我们串了一边LCA 安利个人LCA博客. spfa代码.原理:循环队列. 然后是floyd 个人博客: 原理:我们把所有边权拿出来拍个序,每次把边权最小的两个点放到同一个连通块中,运用并查集的思想,知道连接了n-1条边(n个点)满足树的性质,那么(游戏结束).适合处理无向图的最小生成树.对于有向图,算法为朱刘(毒瘤)算法. 博客传送门: 拓扑排序: 然后直接上题: 跑01最短路. 跑克鲁…
先水了一下昨天没讲完的贪心. 然后今天讲的分治. 安利自己水的二分与三分. 二分一定要满足有序.三分适合解决单峰函数问题. 第一道题借教室.运用差分和二分查找. 三分: P1731 [NOI1999]生日蛋糕 p1903国家集训队数颜色/维护队列 高精度除法: 还有一个lyd的秘技:高精度开方. 然后是矩阵乘法,矩阵快速幂,高斯消元. 然后是欧拉大作:欧拉筛(线性筛),埃拉托斯特尼筛法. 积性函数.莫比乌斯函数. 快速gcd算法. a*和ida*神仙算法(完全不懂. exgcd与逆元. 中国剩余…