8月清北学堂培训 Day3】的更多相关文章

今天是赵和旭老师的讲授~ 状态压缩 dp 状态压缩是设计 dp 状态的一种方式. 当普通的 dp 状态维数很多(或者说维数与输入数据有关),但每一维总量很少时,可以将多维状态压缩为一维来记录. 这种题目最明显的特征就是:都存在某一给定信息的范围非常小(在 20 以内),而我们在 dp 中所谓压缩的就是这一信息. (或者是在做题过程中分析出了某一信息种类数很少) 我们发现这个 m 是非常小的,这样就可以启发我们对每一行 2m 状态压缩. 设 dp [ i ][ S ] 表示到了第 i 行,第 i…
今天是丁明朔老师的讲授~ 数据结构 绪论 下面是天天见的: 栈,队列: 堆: 并查集: 树状数组: 线段树: 平衡树: 下面是不常见的: 主席树: 树链剖分: 树套树: 下面是清北学堂课程表里的: ST表: LCA: HASH: 堆 支持两种操作: 1.插入一个值: 2.删除一个最大值(大根堆)或最小值(小根堆): 需要使用STL里的 priority_queue 或手写: LCA 结点 A 和结点 B 的最近公共祖先 LCA 及以上都是 A 和 B 的公共祖先: 注意 LCA 是尽局限于树上的…
今天是杨思祺老师的讲授~ 图论 双连通分量 在无向图中,如果无论删去哪条边都不能使得 u 和 v 不联通, 则称 u 和 v 边双连通: 在无向图中,如果无论删去哪个点(非 u 和 v)都不能使得 u 和 v 不联通,则称 u 和 v 点双连通. u 到 v 的路径没有必经边和必经点. 割点:删去该点,图分裂为多个连通块. 割边:也叫 “ 桥 ”,删去该边,图分裂为多个连通块. 点双连通分量 类似地,定义 dfnu 和 lowu. 如果 v 是 u 的子结点,并且 lowv ≥ dfnu 则点…
今天是黄致焕老师的讲授~ 历年真题选讲 NOIP 2012 开车旅行 小 A 和小 B 决定外出旅行,他们将想去的城市从 1 到 n 编号,且编号较小的城市在编号较大的城市的西边.记城市 i 的海拔高度为 Hi,城市 i 和城市 j 之间的距离 d ( i , j ) 恰好是这两个城市海拔高度之差的绝对值,即 d ( i , j ) = | Hi −  Hj | . 旅行过程中,小 A 和小 B 轮流开车,第一天小 A 开车,之后每天轮换一次 .他们计划选择一个城市 S 作为起点,一直向东行驶,…
今天是黄致焕老师的讲授~ T1 自信 AC 莫名 80 pts???我还是太菜了!! 对于每种颜色求出该颜色的四个边界,之后枚举边界构成的矩阵中每个元素,如果不等于该颜色就标记那种颜色不能最先使用. 注意特判整张图只有一种颜色的情况.(这个坑点坑掉我 10 pts!) 枚举时注意跳过所有已经被删除的元素.(不然 #8 死活过不去) T2 T3 基础算法 模拟 模拟是算法竞赛中最简单,也是最难的一类题: 简单的地方在于只需要读清楚题目的所有要求并一步步实现就行了: 难点同样必须读清楚题目的所有条件…
今天是廖俊豪老师的讲授~ T1 第一次想出正解 30 pts: k <= 10,枚举如何把数放到矩阵中,O ( k ! ): 100 pts: 对于矩阵的每一列,我们二分最小差异值,然后贪心去判断是否可行: 贪心策略:从前往后找,如果有从某个数开始往后连续的 m 个数,这 m 个数的最大值 - 最小值 < k,那么就把这 m 个数放到同一行,最后判断是否能够凑出 n 行: std 标程: #include<bits/stdc++.h> using namespace std; ;…
今天是钟皓曦老师的讲授~ 今天的题比昨天的难好多,呜~ T1 我们需要找到一个能量传递最多的异构体就好了: 整体答案由花时间最多的异构体决定: 现在的问题就是这么确定一个异构体在花费时间最优的情况下所花的时间是多少: 我们去枚举一个异构体 i,以这个异构体为分界线将其分成左右两部分,设左半部分的异构体的能量和为 sum: 如果 sum > ( i-1 ) * v,v * n - sum(右部分) < 0 ,说明左边的能量是够的,不需要再输入能量了,但是右部分却不够,所以我们需要从左边往右边输送…
今天是钟皓曦老师的讲授~ zhx:题很简单,就是恶心一些qwq~ T1 别人只删去一个字符都能AC,我双哈希+并查集只有40?我太菜了啊qwq 考虑到越短的字符串越难压缩,越长的字符串越好压缩,所以我们可以先压缩短的字符串,再压缩长的字符串,这就是全损压缩法: 全损压缩法: 1.先把所有的字符串读进来,然后按照长度从小到大排序: 2.为了压缩不成问题,我们应该从最短的字符串开始压缩: 3.依次从 a , b , c …… , x , y , z , aa , ab ……这样的顺序进行压缩,如果两…
今天是杨溢鑫老师的讲授~ T1 物理题,不多说(其实是我物理不好qwq),注意考虑所有的情况,再就是公式要推对! #include<bits/stdc++.h> using namespace std; typedef long long LL; ; inline void rd(LL &x) { x=;;char ch=getchar(); ;ch=getchar();} +ch-';ch=getchar();} } LL n,m,x[],y[],g,ans; LL qpow(LL…
今天是杨溢鑫老师的讲授~ T1 1 题意: n * m 的地图,有 4 种不同的地形(包括空地),6 种不同的指令,求从起点及初始的状态开始根据指令行动的结果. 2 思路:(虽然分了数据范围但是实际上思路没什么差别,所以直接讲 100%的思路了) 这个题除了题面又臭又长也没什么难点了,整体上是直接在线处理,然后就是针对不同的指令采取不同的处理措施: “ FT x ” 和 ” WT x ” :这个指令只能进行转动,所以处理起来很轻松,一直记录炮台和机器人本体的方向,然后随着指令转动即可,唯一要检验…