随笔分类 - 知识点
摘要:##传送门 ##逆元 ####什么是逆元? 首先取模运算在加法、减法、乘法中是满足分配率的,即 \((a+b)\%p=(a\%p+b\%p)\%p\) \((a*b)\%p=((a\%p)*(b\%p))\%p\) 但是除法却不满足。 而有时候$\frac%p$中分子和分母都特别大,需要在计算过程中
阅读全文
摘要:##传送门 ##解题思路 先转化为: ax+by=gcd(a,b) exgcd板子,求出一组特解$x_0$,$y_0$后,我们发现,可以将 \(x_0+\frac{kb}{gcd(a,b)}\) \(y_0-\frac{ka}{gcd(a,b)}\) 所以可以得出,x的最小正整数解为$((x-1)%
阅读全文
摘要:前置知识 不会最大流板子的出门右转:https://www.cnblogs.com/yinyuqin/p/14508965.html 小优化 Dinic除了当前弧优化外,还有一点小优化(来自nealchen):在进行bfs分层时,从t点开始搜索分层,搜到s就直接停止搜索。 因为剩下的未分层的点的层数
阅读全文
摘要:HDU传送门 解题思路 总结一下,就是更改最短路的最小代价。 板子题:最短路图上跑最小割。 最短路图 何为最短路图? 显然是最短路组成的图。 各条最短路上的边组成的新图。 求法? 记录最短路显然码量很大,于是乎我们可以从s点跑一遍最短路,在反图上从t点跑一遍最短路,枚举每一条边e<u,v>,若dis
阅读全文
摘要:传送门 解题思路 结论题,威佐夫博弈就是让你背个结论。 若(向下取整)两个数的差*黄金分割比 == 较小的数,则先手输,否则先手胜。 注意先确定两个数的大小,黄金分割比用double。 AC代码 1 #include<cstdio> 2 #include<iostream> 3 #include<c
阅读全文
摘要:最大流传送门 费用流传送门 网络流 很形象的定义:城市水管。 城市之间有许多水管,每根水管有一个最大容量,有一个源点(即出水点)s,和一个汇点t(回收水点)。 而最大流就是求最多能有多少水从源点流向汇点。 用找增广路的思想,每次不断找到增广路,更新答案。 注意要加反向边(返回操作),保证正确性。 但
阅读全文
摘要:传送门 分块大法好 分块 什么是分块 就是把一连串的东西分成几个部分,通常是分成√n个部分,每个部分√n个数字,然后每一块分开处理。(当然有别的情况) 有什么用 时间得到了优化,把n变成了sqrt(n)*log(sqrt(n))。这是一种优雅的暴力呢 主要思路? 每一块内按照权值排序。对于每一次操作
阅读全文
摘要:传送门 启发式合并 通俗点讲,就是将两个数据合并时,小的合并到大的里,这样就可以节约时间。 解题思路 再看看这个题,就是个板子题。 在两个节点信息合并起来时,让颜色数少的节点合并到颜色点多的节点上,实际操作时则是都是儿子的信息合并到父亲上,但是若儿子信息多于父亲,则交换一下信息(swap可做到O(1
阅读全文
摘要:传送门 左偏树 政治老师告诉我们,要从以下方面思考问题: 是什么 为什么 怎么做 1.是什么:嗯……从字面看,是树(堆),是一个长得向左偏的二叉树(堆)。就长这样: 定义们: 外节点:当且仅当节点 i 的左子树或右子树为空时,节点被称作外节点。 距离:一个点的距离,被定义为它子树中离他最近的外节点到
阅读全文
摘要:异或运算 相同为0,不同为1。 1^1=0,0^1=1,1^0=1,0^0=0 P1469 找筷子 很有趣的一道题。因为空间有限制,所以我们每读入一个数就与ans异或一下,因为相同会变成0,所以剩下的即是答案。 1 #include<iostream> 2 #include<cstdio> 3 us
阅读全文
摘要:传送门 高斯消元 什么叫高斯消元? 就是解多元方程组的一种方法。 给你n个方程组,包含着n个未知数,告诉你每一个方程中的每一个未知数的系数和常数项。 怎么解? 和数学上差不多,把第一个方程保留第一个未知数(设系数为k),把第二个到第n个方程的第一个未知数的系数化为-k,用加减消元即可。 以此类推,枚
阅读全文
摘要:直接放 论文网址: 百度文库 个人总结与体会: 两种方法,一种是O(s^2),s为障碍点个数。一种是O(n*m),一般使用第二种会快一点。 垂线法运用了贪心思想,枚举的垂线都尽可能向两边拓展,O(n*m)枚举,O(1)求解(提前预处理)。
阅读全文
摘要:问题表述 对于(int)90*0.7,在float下会算出63,而在double下则会取得62。 根本原因 double和float的精度不同,因而对于数字的保存不同,例如0.7在double下会有一个小项,导致存储是是63-(一个很小的数),所以在取int时(舍弃低位),就会变成62。 有些时候f
阅读全文
摘要:传送门 缩点 在一个有向图上缩点就是指把有向图上的环变成一个点。 具体实现用Tarjan。 先求强联通分量,每次遇到新点是把这个点进栈,最后若dfn[i]==low[i]则i这个点一定在环上,而且栈中i之后进入的元素也在这个环上(证明略)。 即一直出栈,知道出栈元素等于i。在出栈过程中维护信息即可。
阅读全文
摘要:传送门 解题思路 g[i][j][k]表示i到j这个点有没有长度为2^k的路径,若有为1,若没有为0。答案可以由g[i][x][k-1]&&g[x][j][k-1]更新(Floyd传递闭包)。 倍增求一遍后,把所有g[i][j][k] = 1 的 i j之间连一条长度为1的边(因为可以一步到达)。
阅读全文
摘要:传送门 解题思路 很显然是dp(因为标签是dp)。 设dp[i][j]表示放到第i个原料,放完后的原料数量为j个最大的耐久度。 可以用dp[i-1][k]转移而来,其中k:j-1<=k<=min(w,j+s-1)。 你发现了什么,可以用单调队列优化! 即维护一个长度为s的单调队列。 //把这个题当做
阅读全文
摘要:传送门 解题思路 先看一下数据范围,a、b、c都是10^6,所以大体推断出做法时间复杂度约为nlogn。 根据axy=(ax)^y,所以ab!=(((((a^1)^2)^3)^4)^……)^b。 用底数变化的快速幂(O(logb))做b次即可。 或者对指数b!做一些处理—— 我们知道指数b!一定不能
阅读全文
摘要:传送门 传送门(加强版) 解题思路 这道题是我在学校里讲课的题,放上课件下载地址:https://files.cnblogs.com/files/yinyuqin/树网的核.ppt。 感觉课件里讲的还是比较详细的。 先说一下n^3做法:Floyd预处理出树中任意两点之间的距离,然后在直径上暴力枚举核
阅读全文
摘要:传送门 解题思路 求LCA一般可以用倍增、树链剖分、tarjan算法解决。 这里只介绍树剖。 先处理出每一条链的链顶,然后对于每两个要求的点,判断是否在同一条链上。如果在,那么深度较浅的点就是LCA。 如果不在同一条链上,就比较两个所在链的链顶的深度,把链顶深度较低的点跳到链顶的父亲(这样就保证有答
阅读全文
摘要:传送门 树链剖分 简单点说,就是把一棵树变成多条链。 这里说的是重链剖分。 在遍历一颗树的时候,我们强制从父亲节点走向儿子时,先走所有儿子中以儿子为根的子树最大的那个儿子。 其他的儿子不管什么顺序都可。 这样就可以把dfs序作为链。 例如上面这棵树,边上的蓝色数字就是遍历顺序。 说一些定义: 重边:
阅读全文

浙公网安备 33010602011771号