摘要:
UVA10902 Pick-up Sticks 题意简述 多测。给定坐标系上依次给定\(n\)根木棍的起始和终止坐标,按顺序放置这些木棍,询问最终处在最上层的木棍有哪些。 \(n\le 100000\)。保证任意时刻最上层的木棍不超过\(1000\)个。 思路分析 看起来数据范围很刁钻,不过除了暴力 阅读全文
UVA10902 Pick-up Sticks 题意简述 多测。给定坐标系上依次给定\(n\)根木棍的起始和终止坐标,按顺序放置这些木棍,询问最终处在最上层的木棍有哪些。 \(n\le 100000\)。保证任意时刻最上层的木棍不超过\(1000\)个。 思路分析 看起来数据范围很刁钻,不过除了暴力 阅读全文
posted @ 2024-07-16 09:20
Sinktank
阅读(57)
评论(0)
推荐(0)
模板题:P3803 【模板】多项式乘法(FFT) 快速傅里叶变换(Fast Fourier Transform,FFT)在算法竞赛中主要用于求卷积,或者说多项式乘法。如果我们枚举两数的各系数相乘,时间复杂度是\(O(n^2)\),而FFT可以将这一过程优化到\(O(n\log n)\)。 流程 整个
给定一个长度为\(n\)的\(01\)串\(s\),用于表示一个环上的细胞的初始状态,其中第\(1\)个细胞与第\(2\)个、第\(n\)个细胞相邻;第\(n\)个细胞与第\(1\)个和第\(n-1\)个相邻。\(0\)表示细胞死亡,\(1\)表示细胞存活。接下来给定\(t\)轮操作,每一轮操作,根
题意简述 有一个星系,共有\(n*m\)个星球,排成\(n\)行\(m\)列。 初始星球之间没有道路。接下来给定\(P\)种魔法\(1\),\(Q\)种魔法\(2\): 魔法\(1\):第\(i\)种魔法用\(a_i,b_i,c_i\)描述。表示你可以任选星系的一行,在第\(a_i\)和第\(b_i
[题解]P1083 [NOIP2012 提高组] 借教室 解法\(1\):线段树 - \(O((n+m)\log n)\) 比较直观的一种做法,但是可能需要卡一下输入(这里没卡也过了,但要注意输入是\(10^6\)级的,为了保险一定要加)。 #include<bits/stdc++.h> #defi
P2042 [NOI2005] 维护数列 一道思路不难,但实现细节很多的平衡树题,调了一天半终于做出来了w。 对于初始序列,我们可以直接构建一条链(毕竟一个一个调用插入函数也可能形成一条链)。题解有递归直接构建成一棵严格平衡的二叉树的,这样也可以,常数可能会小一点。 其中区间反转就是裸的文艺平衡树(
P3391 【模板】文艺平衡树 给定序列\(1,2,\dots,n\),接下来\(m\)次操作,每次操作给定\(l,r\),你需要翻转\([l,r]\)。 所有操作结束后,请输出这个序列。 我们先从“普通平衡树”这一题出发,思考一下Splay操作的本质。 我们把一个节点Splay到根节点后,中序遍历
前置知识:树的左旋、右旋。 Splay树是一种平衡树。能够做到每个操作均摊\(O(\log N)\)。 前言 与上文AVL树不同之处在于,AVL树在任何操作结束后,都能保证每个节点的左右子树高度相差不超过\(1\)。相应地,每个操作都是严格的\(O(\log N)\)。而Splay树并没有对“平衡”
AVL树是一种严格平衡的二叉搜索树,任何操作结束后,都能保证每个节点的左右子树高度相差不超过\(1\)。 内容源自BV1rt411j7Ff - 【AgOHの数据结构】平衡树专题之叁 树旋转与AVL树。 模板题:P3369 【模板】普通平衡树。 结构体定义 & 基本函数 struct node{ in
AtCoder ~ E - Alphabet Tiles Luogu ~ ABC358E Alphabet Tiles 题意简述 给定正整数 \(K\) 和 \(C_1,C_2,\dots,C_{26}\)。请求出长度在 \(1\) 到 \(K\) 之间,满足下列条件的字符串个数(取模 \(9982
P9432 [NAPC-#1] rStage5 - Hard Conveyors 题意简述 给定一个\(N\)个节点的树形结构,其中有\(k\)个关键节点。 接下来有\(q\)次询问,每次询问给定\(x,y\),请输出\(x\)到\(y\)至少经过一个关键点的最短路径。 解题思路 我们发现,这道题相
P9433 [NAPC-#1] Stage5 - Conveyors 题意简述 给定一个\(N\)个节点的树形结构,每条边有边权,树上有\(k\)个关键点。 接下来有\(q\)次询问,每次询问给定\(x,y\)两点,请计算从\(x\)开始经过这\(k\)个关键点(可以重复经过)再到\(y\)的最短路
P1967 [NOIP2013 提高组] 货车运输 题意简述 给定一个\(N\)个节点,\(M\)条边的无向图,其中每条边有一个边权。 接下来给定\(q\)次询问。每次询问给出\(x,y\),请计算\(x\)到\(y\)路径上最小边权的最大值是多少。 解题思路 我们对于每个连通块跑一遍最大生成树。这
P3398 仓鼠找 sugar 题意简述 给定一个\(N\)个节点的树形结构。接下来有\(q\)次询问,每次询问给定\(4\)个节点\(a,b,c,d\),请计算\(a\)到\(b\)的简单路径和\(c\)到\(d\)的简单路径是否有相交的节点。对于每个询问,输出Y/N表示答案。 解题思路 & Co
P6374 「StOI-1」树上询问 题意简述 给定一个\(N\)个节点的树,接下来有\(q\)次询问。每次询问给定\(a,b,c\),请问存在多少个节点\(i\),使得这棵树在以\(i\)为根的情况下,\(a\)和\(b\)的LCA是\(c\)。 解题思路 & Code 首先通过分析样例,我们发现
UVA11235 Frequent values 没看到多测调了半天 每组数据给定\(n,q\)。接下来给出一个长度为\(n\)的不降序列\(A\)。接下来\(q\)次询问,每次询问给定\(l,r\),求\(A_{l\sim r}\)中出现最多的那个数出现了多少次。 \(1\le n,q \le 1
P4381 [IOI2008] Island 题意:给定一个基环树森林,求每个基环树的直径之和。 我们发现,一棵基环树的直径只有下面两种情况: 环上的某一点作为根的子树的直径。 环上有两点,每个点引出一条链,然后再将这两点相连。 对于第一种情况,我们仅需用树形dp的方法求出每个子树的直径(见OI W
树上背包是树形dp的常见模型,通常是分组背包的变形,而分组背包的本质就是多个泛化物品不断相加。因此掌握泛化物品的合并的方法有助于理解转移的过程(具体见1.4)。 此类问题一般也可以用DFS序、多叉转二叉等方法解决。 引入:二叉苹果树 P2015 二叉苹果树 题意简述:在一个二叉树中,每个边有一个权值
对于一个有向无环图(DAG)的顶点按顺序排成一个序列的过程,就是拓扑排序(Topological Sort)。 具体来说,这个序列必须满足: 每个顶点正好出现\(1\)次。 如果图上存在一条\(A\to B\)的路径,那么\(A\)一定在\(B\)之前。 注意:拓扑排序结果可能不唯一。 注意与DFS
CF1907G Lights 我们可以把灯抽象成节点,而开关抽象成无向边(重边算作\(1\)条)。 显然每个连通块要么是一棵树,要么是一棵基环树。 对于基环树,我们把它看做若干棵树处理,最后我们再考虑如何处理环。 如下图,这是一棵树,黄色的点表示亮灯。 我们选定任意一条边,可以改变子节点和父节点的状
于 2024/11/25 修改分类 题解 \(\Longrightarrow\) 笔记。 P1757 通天之分组背包 分组背包模板题。 总共\(s\)组,每组最多取一个物品,实际上就是一个物品总数为\(s\)的背包。 for(int i=1;i<=s;i++){//枚举组 for(int j=1;j
树形dp,是一种建立在树形结构上的dp,因此dfs一般是实现它的通用手段。 是一种很美的动态规划呢。 P1352 没有上司的舞会 P1352 没有上司的舞会。 在一棵树中,找到若干个互相独立(即互相没有边直接相连)的点,使它们的权值和最大。 我们发现,间隔选择的方法(只选深度为奇数/偶数的点)是不可
ABC337E Bad Juice 一开始的想法如下: 就是利用二分法,对于一个区间\([l,r]\),分成\([l,mid-1],[mid,r-1]\)两部分,各找两个朋友喝,右边还空出一个\(r\),如果前面两个朋友都没中毒,那说明\(r\)这瓶有毒。 但仔细一想,我们发现\([1,n)\)的瓶
P4597 序列 sequence 是CF13C Sequence的加强版,\(N\leq 5*10^5\)。 如果想了解\(O(N^2)\)的DP解法请看此文。 给定\(N\)个数,每次操作可以选其中一个数\(+1\)或\(-1\)。请问要让这个数列不降,最少需要多少次操作? 看到数据范围发现不能
CF13C Sequence 给定\(N\)个数,每次操作可以选其中一个数\(+1\)或\(-1\)。请问要让这个数列不降,最少需要多少次操作? 我们用DP解决。 对\(a\)从小到大排序,存在\(c\)中。 我们用\(f[i][j]\)表示让前\(i\)个元素满足条件,而且这些元素最大值不超过\(
D - Grid and Magnet 终于找到为什么WA 4个点了。今天回来又交了几遍发现WA的数量不稳定,除了4个还有5个。所以猜测是没有初始化的问题,一番检查发现是存地图的\(s\)数组,第\(0\)行没有初始化。之前做题没有遇到过特别访问第\(0\)行的,所以写代码时就粗枝大叶、一笔略过了。
P2015 二叉苹果树 树形dp,一般用dfs辅助解决。 当我们搜索到\(u\),此时剩下\(cnt\)条边可以用,也就是说\(u\)为根节点的子树最多可以保留\(cnt\)条边。 由于上一层的需求,我们显然需要枚举剩余边数\(i\)(\(1\leq i\leq cnt\))。接下来对于每个\(i\
P5656 【模板】二元一次不定方程 (exgcd) 若存在\(ax+by=c\),则可以根据特解\(x,y\)求出任意通解\(x',y'\): \(\begin{cases} x'=x+k*\frac{b}{\gcd(a,b)}\\ y'=y-k*\frac{a}{\gcd(a,b)} \end{
CF61E Enemy is weak 如下图,第\(i\)行\(j\)列表示第\(j\)个数结尾,向前长度为\(i\)的逆序子序列个数。 递推方式见下图。 第一行全为\(1\)。 要填第\(2\)行的值,就往前找所有\(>\)当前元素的位置,把它们第\(1\)行的值加起来。 要填第\(3\)行的值
可恶,卡常好难受。 P5431 【模板】模意义下的乘法逆元 2 将分数通分,第\(i\)个分数是\(\frac{k^i*fac\div a[i]}{fac}\),\(fac\)表示所有元素的积。 我们可以用\(lr,rl\)记录\(a\)的前缀后缀积,第\(i\)个分数就是\(\frac{k^i*l
浙公网安备 33010602011771号