09 2020 档案
摘要:https://www.luogu.com.cn/problem/P5024 动态DP $f_{u,0}$表示以$u$为根的子树中,$u$不取的最小开销 $f_{u,1}$表示以$u$为根的子树中,$u$必取的最小开销 $g_{u,0}$表示以$u$为根的子树中,不取重儿子,且$u$不取的最小开销
阅读全文
摘要:https://www.luogu.com.cn/problem/P2586 模拟 按题意模拟 注意点: $1.$判断激光是否会打到其他蚂蚁的判断要小心(计算几何基础都不扎实),实际上我的的代码中不是很科学,应当算出与直线与圆的交点然后判断,而我直接判断圆心是否夹在线段的两个端点中间,但是在本题中,
阅读全文
摘要:KM算法 KM算法用来解决二分图最大权完美匹配问题,是对匈牙利算法算法的改进 具体思路是,假设左边的节点有一个顶标$ex_i$,右边的节点有一个顶标$ey_i$ 我们要求顶标对于任意一条边,满足$ex_i+ey_j \ge w_{i,j}$,当$ex_i+ey_j=w_{i,j}$,可以连接边$ed
阅读全文
摘要:方法一:bat版本 建一个.bat文件 输入下面的代码(文件名自行修改,$make.exe$代表造数据文件,$1.exe,2.exe$表示相关要比较的程序) :loop make.exe 1.exe 2.exe fc 1.out 2.out /W if %errorlevel%==1 pause g
阅读全文
摘要:一般$NOIP$时栈空间与内存空间一样大,但是编译器一般只开有$8MB$的栈空间,以致递归过度会导致爆栈 所以我们可以再$vscode$终端中敲入ulimit -s X $X$为栈空间大小(例:$X=128000=125*1024$时,栈空间为$125MB$)
阅读全文
摘要:$Linux$对拍标准代码 #include<bits/stdc++.h> using namespace std; int main(){ int i; for (i=1;;i++){ printf("The result of No. %d Case is: ",i); system("./da
阅读全文
摘要:匈牙利算法 匈牙利算法是基于寻找增广路进行的匹配,一条增广路是当然是一条真实存在的路径,由未匹配点开始,以未匹配点结束,匹配点与未匹配点交替出现,这样一条增广路可以让原问题的答案加$1$(把匹配边与未匹配边反一反也是合法答案,同时答案更大),具体可以参考这篇博客 所以我们枚举每一个点,去寻找增广路,
阅读全文
摘要:https://www.luogu.com.cn/problem/P4751 动态DP 树剖的动态DP做法见此,动态DP原理也再里面,这篇博客就不写了:树剖动态DP 由于树剖时间复杂度为$O(n \log^2 n)$,会被这道题卡,所以我们需要全局平衡二叉树 全局平衡二叉树类似$LCT$,有虚实边之
阅读全文
摘要:https://www.luogu.com.cn/problem/P5512 搜索 考虑最简单的搜索,数字从小到大开始搜索 首先,搜索第一行第一列,然后逐个$(2,2),(2,3),\cdots,(2,n),(3,2),(3,3),\cdots,(n,n)$搜索 预处理$t_{i,j}$表示$i,j
阅读全文
摘要:https://www.luogu.com.cn/problem/P2680 树链剖分 我们对每条边$i$单独考虑,那么设$v_i$为这条边的长度,经过它的路径长度集合为$S$,未经过它的路径长度集合为$T$ \[ ans_i=\max \begin{cases} S_{max}-v_i \\ T_
阅读全文
摘要:https://www.luogu.com.cn/problem/P3379 $Tarjan$求$LCA$ $Tarjan$求$LCA$是一种离线求$LCA$的做法 $dfs$访问每个节点,当一个节点被访问结束后,直接将该节点并在它的父亲上,然后处理询问 用$vector$储存一端在$u$的询问,倘
阅读全文
摘要:https://www.luogu.com.cn/problem/P5021 图论 十分简单的题目,想起NOIP2018时叹其为不可做题,一点一点啃暴力分(自闭) 很明显,需要二分答案,设二分到的值为$mid$ 对于每个节点考虑,倘若有一条链经过节点$u$和其父亲之间的连边,那么我们只能有一条链延伸
阅读全文
摘要:https://www.luogu.com.cn/problem/P2668 https://www.luogu.com.cn/problem/P2540 搜索 我们搜索顺子,最优选择应该是先搜单顺或者双顺,再搜三顺(毕竟三张牌用处更大) 搜顺子可以从长的搜到短的 最优性剪枝就不用多说了吧 然后每搜
阅读全文
摘要:https://www.luogu.com.cn/problem/P3373 分块 不写线段树,就是要分块! 同样需要打标记 在任何时候,\(A_i=mul_{bel_i} \times a_i+add_{bel_i}\)($bel_i$表示$i$属于哪一块,$A_i$表示第$i$个位置的真实值)
阅读全文
摘要:https://www.luogu.com.cn/problem/P5049 图论 其实参加过$NOIP2018$了,当时弄了一个$O(n^2 \log n)AC$,但是没补过这个加强版 本来以为挺简单的,但是一叠细节没有考虑,$WA$飞好多次(菜死) 首先,对于树的情况,很容易考虑到把每个节点相邻
阅读全文
摘要:https://www.luogu.com.cn/problem/P1177 排序 快速排序(\(QuickSort\)) #include<iostream> #include<cstdio> #include<algorithm> #define N 100005 using namespace
阅读全文
摘要:https://www.luogu.com.cn/problem/P1084 二分/倍增/贪心 阅读题面,很容易发现,答案具有可以二分的性质,所以我们首先二分答案 又有一个比较显然的结论,我们假设让一支军队在一个节点或其父亲(非$1$)上,选择其父亲显然更优(可以覆盖更多叶子节点) 那我们就倍增跳呗
阅读全文
摘要:https://www.luogu.com.cn/problem/P5665 \(DP\) \(36pts\) $dp_{i,j}$表示前$i$个数,上一段取的是以位置$j$结尾的最小值 $S_i$表示前$i$个数的和 \[ dp_{i,j}=\min \begin{cases} {S_i}^2 \
阅读全文
摘要:https://www.luogu.com.cn/problem/P6177 树分块 思路就是每隔$S$个点,取一个关键点,记录每两个关键点之间的信息,用$bitset$维护 然后每次询问一条链时,拆成以$lca$为上端节点的两条链 对于每条链,关键点之间的信息直接取就行,剩下的单独取(\(bits
阅读全文
摘要:https://www.luogu.com.cn/problem/P5664 \(DP\) 首先,根据题意,每一行至多取一个 直接求状态数太多,正难则反 我们用全部方案数减去不符合要求的方案数(注意除去全不取情况) 这里不符合要求的方案即食材数超过一半的那些方案 枚举哪一列食材数超过一半,其他任意取
阅读全文
摘要:https://www.luogu.com.cn/problem/P1058 模拟 以前看到这道题就头晕,一直没下手(尽管是黄题) 今天好歹一遍过样例,一遍$AC$ \(Code:\) #include<iostream> #include<cstdio> #include<algorithm> #
阅读全文
摘要:https://www.luogu.com.cn/problem/P4719 动态DP 考虑静态的$DP$ 设$f_{u,0}$表示$u$号点不取时,以$u$为子树的最大权独立集的权值,$f_{u,1}$表示$u$号点取时,以$u$为子树的最大权独立集的权值 \[ f_{u,0}=\sum_{v \
阅读全文

浙公网安备 33010602011771号