摘要: [题解]POJ3304 Segment POJ3304 Segment 题意简述 多测,每次给定\(n(n\le 100)\)条线段,请问是否能找到\(1\)条直线,使得所有线段在该直线上的投影有公共部分。 注:两点距离\(<10^{-8}\)被认为是相等的。 思路分析 题意转化一下,就是要我们找一条直线\(l_1\),穿过所有线段。这样 阅读全文
posted @ 2024-07-16 11:46 Sinktank 阅读(10) 评论(0) 推荐(0) 编辑
摘要: [题解]UVA10902 Pick-up Sticks UVA10902 Pick-up Sticks 题意简述 多测。给定坐标系上依次给定\(n\)根木棍的起始和终止坐标,按顺序放置这些木棍,询问最终处在最上层的木棍有哪些。 \(n\le 100000\)。保证任意时刻最上层的木棍不超过\(1000\)个。 思路分析 看起来数据范围很刁钻,不过除了暴力 阅读全文
posted @ 2024-07-16 09:20 Sinktank 阅读(16) 评论(0) 推荐(0) 编辑
摘要: [笔记]快速傅里叶变换(FFT) 模板题:P3803 【模板】多项式乘法(FFT) 快速傅里叶变换(Fast Fourier Transform,FFT)在算法竞赛中主要用于求卷积,或者说多项式乘法。如果我们枚举两数的各系数相乘,时间复杂度是\(O(n^2)\),而FFT可以将这一过程优化到\(O(n\log n)\)。 流程 整个 阅读全文
posted @ 2024-07-15 11:08 Sinktank 阅读(86) 评论(0) 推荐(0) 编辑
摘要: [题解]细胞自动机 给定一个长度为\(n\)的\(01\)串\(s\),用于表示一个环上的细胞的初始状态,其中第\(1\)个细胞与第\(2\)个、第\(n\)个细胞相邻;第\(n\)个细胞与第\(1\)个和第\(n-1\)个相邻。\(0\)表示细胞死亡,\(1\)表示细胞存活。接下来给定\(t\)轮操作,每一轮操作,根 阅读全文
posted @ 2024-07-06 22:15 Sinktank 阅读(12) 评论(0) 推荐(0) 编辑
摘要: [题解]逃离地球 题意简述 有一个星系,共有\(n*m\)个星球,排成\(n\)行\(m\)列。 初始星球之间没有道路。接下来给定\(P\)种魔法\(1\),\(Q\)种魔法\(2\): 魔法\(1\):第\(i\)种魔法用\(a_i,b_i,c_i\)描述。表示你可以任选星系的一行,在第\(a_i\)和第\(b_i 阅读全文
posted @ 2024-07-05 09:15 Sinktank 阅读(25) 评论(0) 推荐(0) 编辑
摘要: [题解]P1083 [NOIP2012 提高组] 借教室 [题解]P1083 [NOIP2012 提高组] 借教室 解法\(1\):线段树 - \(O((n+m)\log n)\) 比较直观的一种做法,但是可能需要卡一下输入(这里没卡也过了,但要注意输入是\(10^6\)级的,为了保险一定要加)。 #include<bits/stdc++.h> #defi 阅读全文
posted @ 2024-07-04 22:30 Sinktank 阅读(41) 评论(0) 推荐(0) 编辑
摘要: [题解]P2042 [NOI2005] 维护数列 - Splay解法 P2042 [NOI2005] 维护数列 一道思路不难,但实现细节很多的平衡树题,调了一天半终于做出来了w。 对于初始序列,我们可以直接构建一条链(毕竟一个一个调用插入函数也可能形成一条链)。题解有递归直接构建成一棵严格平衡的二叉树的,这样也可以,常数可能会小一点。 其中区间反转就是裸的文艺平衡树( 阅读全文
posted @ 2024-06-23 20:46 Sinktank 阅读(24) 评论(0) 推荐(0) 编辑
摘要: [题解]P3391 文艺平衡树 - Splay解法 P3391 【模板】文艺平衡树 给定序列\(1,2,\dots,n\),接下来\(m\)次操作,每次操作给定\(l,r\),你需要翻转\([l,r]\)。 所有操作结束后,请输出这个序列。 我们先从“普通平衡树”这一题出发,思考一下Splay操作的本质。 我们把一个节点Splay到根节点后,中序遍历 阅读全文
posted @ 2024-06-20 18:39 Sinktank 阅读(44) 评论(0) 推荐(0) 编辑
摘要: [笔记]Splay树 前置知识:树的左旋、右旋。 Splay树是一种平衡树。能够做到每个操作均摊\(O(\log N)\)。 前言 与上文AVL树不同之处在于,AVL树在任何操作结束后,都能保证每个节点的左右子树高度相差不超过\(1\)。相应地,每个操作都是严格的\(O(\log N)\)。而Splay树并没有对“平衡” 阅读全文
posted @ 2024-06-20 11:36 Sinktank 阅读(59) 评论(0) 推荐(0) 编辑
摘要: [笔记]AVL树 AVL树是一种严格平衡的二叉搜索树,任何操作结束后,都能保证每个节点的左右子树高度相差不超过\(1\)。 内容源自BV1rt411j7Ff - 【AgOHの数据结构】平衡树专题之叁 树旋转与AVL树。 模板题:P3369 【模板】普通平衡树。 结构体定义 & 基本函数 struct node{ in 阅读全文
posted @ 2024-06-16 15:48 Sinktank 阅读(32) 评论(0) 推荐(0) 编辑
摘要: [题解]ABC358E Alphabet Tiles AtCoder ~ E - Alphabet Tiles Luogu ~ ABC358E Alphabet Tiles 题意简述 给定正整数 \(K\) 和 \(C_1,C_2,\dots,C_{26}\)。请求出长度在 \(1\) 到 \(K\) 之间,满足下列条件的字符串个数(取模 \(9982 阅读全文
posted @ 2024-06-16 11:56 Sinktank 阅读(83) 评论(0) 推荐(1) 编辑
摘要: [题解]P9432 [NAPC-#1] rStage5 - Hard Conveyors P9432 [NAPC-#1] rStage5 - Hard Conveyors 题意简述 给定一个\(N\)个节点的树形结构,其中有\(k\)个关键节点。 接下来有\(q\)次询问,每次询问给定\(x,y\),请输出\(x\)到\(y\)至少经过一个关键点的最短路径。 解题思路 我们发现,这道题相 阅读全文
posted @ 2024-06-10 20:11 Sinktank 阅读(16) 评论(0) 推荐(0) 编辑
摘要: [题解]P9433 [NAPC-#1] Stage5 - Conveyors P9433 [NAPC-#1] Stage5 - Conveyors 题意简述 给定一个\(N\)个节点的树形结构,每条边有边权,树上有\(k\)个关键点。 接下来有\(q\)次询问,每次询问给定\(x,y\)两点,请计算从\(x\)开始经过这\(k\)个关键点(可以重复经过)再到\(y\)的最短路 阅读全文
posted @ 2024-06-10 19:06 Sinktank 阅读(21) 评论(0) 推荐(0) 编辑
摘要: [题解]P1967 [NOIP2013 提高组] 货车运输 P1967 [NOIP2013 提高组] 货车运输 题意简述 给定一个\(N\)个节点,\(M\)条边的无向图,其中每条边有一个边权。 接下来给定\(q\)次询问。每次询问给出\(x,y\),请计算\(x\)到\(y\)路径上最小边权的最大值是多少。 解题思路 我们对于每个连通块跑一遍最大生成树。这 阅读全文
posted @ 2024-06-09 15:52 Sinktank 阅读(17) 评论(0) 推荐(0) 编辑
摘要: [题解]P3398 仓鼠找 sugar P3398 仓鼠找 sugar 题意简述 给定一个\(N\)个节点的树形结构。接下来有\(q\)次询问,每次询问给定\(4\)个节点\(a,b,c,d\),请计算\(a\)到\(b\)的简单路径和\(c\)到\(d\)的简单路径是否有相交的节点。对于每个询问,输出Y/N表示答案。 解题思路 & Co 阅读全文
posted @ 2024-06-09 13:13 Sinktank 阅读(18) 评论(0) 推荐(0) 编辑
摘要: [题解]P6374 「StOI-1」树上询问 P6374 「StOI-1」树上询问 题意简述 给定一个\(N\)个节点的树,接下来有\(q\)次询问。每次询问给定\(a,b,c\),请问存在多少个节点\(i\),使得这棵树在以\(i\)为根的情况下,\(a\)和\(b\)的LCA是\(c\)。 解题思路 & Code 首先通过分析样例,我们发现 阅读全文
posted @ 2024-06-08 23:42 Sinktank 阅读(26) 评论(0) 推荐(0) 编辑
摘要: [题解]UVA11235 Frequent values UVA11235 Frequent values 没看到多测调了半天 每组数据给定\(n,q\)。接下来给出一个长度为\(n\)的不降序列\(A\)。接下来\(q\)次询问,每次询问给定\(l,r\),求\(A_{l\sim r}\)中出现最多的那个数出现了多少次。 \(1\le n,q \le 1 阅读全文
posted @ 2024-06-02 14:13 Sinktank 阅读(11) 评论(0) 推荐(0) 编辑
摘要: [题解]P4381 [IOI2008] Island——基环树直径 P4381 [IOI2008] Island 题意:给定一个基环树森林,求每个基环树的直径之和。 我们发现,一棵基环树的直径只有下面两种情况: 环上的某一点作为根的子树的直径。 环上有两点,每个点引出一条链,然后再将这两点相连。 对于第一种情况,我们仅需用树形dp的方法求出每个子树的直径(见OI W 阅读全文
posted @ 2024-06-02 12:09 Sinktank 阅读(43) 评论(0) 推荐(1) 编辑
摘要: [笔记]树形dp - 2/4(树上背包类) 树上背包是树形dp的常见模型,通常是分组背包的变形,而分组背包的本质就是多个泛化物品不断相加。因此掌握泛化物品的合并的方法有助于理解转移的过程(具体见1.4)。 此类问题一般也可以用DFS序、多叉转二叉等方法解决。 引入:二叉苹果树 P2015 二叉苹果树 题意简述:在一个二叉树中,每个边有一个权值 阅读全文
posted @ 2024-05-12 17:36 Sinktank 阅读(449) 评论(1) 推荐(2) 编辑
摘要: [笔记]拓扑排序 对于一个有向无环图(DAG)的顶点按顺序排成一个序列的过程,就是拓扑排序(Topological Sort)。 具体来说,这个序列必须满足: 每个顶点正好出现\(1\)次。 如果图上存在一条\(A\to B\)的路径,那么\(A\)一定在\(B\)之前。 注意:拓扑排序结果可能不唯一。 注意与DFS 阅读全文
posted @ 2024-05-08 23:07 Sinktank 阅读(40) 评论(0) 推荐(1) 编辑
★CLICK FOR MORE INFO★ TOP-BOTTOM-THEME
Enable/Disable Transition
Copyright © 2023 ~ 2024 Sinktank - 1328312655@qq.com
Illustration from 稲葉曇『リレイアウター/Relayouter/中继输出者』,by ぬくぬくにぎりめし.