同余最短路(学习笔记)
摘要:
简介: 同余最短路,光是看名字就会发现与同余和最短路有关。同余最短路常用来解决的问题是: 当出现形如「给定 \(n\) 个整数,求这 \(n\) 个整数能拼凑出多少的其他整数(\(n\) 个整数可以重复取)」,以及「给定 \(n\) 个整数,求这 \(n\) 个整数不能拼凑出的最小(最大)的整数」,
P2286 [HNOI2004] 宠物收养场
摘要:
P2286 [HNOI2004] 宠物收养场 题目翻译: 给定 \(n\) 次操作,每次操作会添加一个元素。并且维护一个集合,若当前添加的元素与集合中元素种类相同,则直接添加,若不相同这要将最终答案加上给元素与集合中元素的差的绝对值的最小值,并删除对应的集合中的元素。(特别注意:若有两个元素与添加元
CF2063B Subsequence Update
摘要:
Subsequence Update 题目翻译: 给定一个序列。在给定一个区间 \([l,r]\),你可以任意选择几个数,使所选的所有数左右颠倒。求如何颠倒才能使区间内的所有数之和最小。 思路: 若要使整个区间内所有数和最少,那一定就使尽量小的数翻转到区间内。我们发现我们只需要在区间左边或右边选择几
CF2063A Minimal Coprime
摘要:
Minimal Coprime 题目翻译: 给定一个区间 \([l,r]\) 求该区间有多少个最短的互质区间,及有多少个子区间使得 \(l_1,r_1\) 只有 \(1\) 一个公约数,且该区间内不包含其他满足条件的区间。 思路: 本题若是直接看给的样例,就可以盲猜一波答案是 \(r-l\) 只有
P1186 玛丽卡
摘要:
P1186 玛丽卡 本题与该题差不多,是那道题的加强版。 题目翻译: 给定一个无向连通图,共有 \(n\) 个节点,和 \(m\) 条边。求若可以使任意删除一条边,那怎样删除才能使其最短路长度的增值最多,即让一条路边权删除使得删除后的最短路长度与删除前最短路长度的差最大,并输出这个差。 思路: 本题
P1340 兽径管理
摘要:
P1340 兽径管理 题目翻译: 给定 \(n\) 个点,和 \(m\) 条边,每加一条边,就判断其能否将所有点联通,且若使其联通的最小边权和。 思路: 对于求图上的最小边权和,很容易想到最小生成树,我们用 \(kruskal\) 来建最小生成树,每增加一条边就重新运行一次,对于判断是否全部联通,就
P2176 [USACO11DEC] RoadBlock S / [USACO14FEB]Roadblock G/S
摘要:
P2176 [USACO11DEC] RoadBlock S / [USACO14FEB]Roadblock G/S 题目翻译: 给定一个无向连通图,共有 \(n\) 个节点,和 \(m\) 条边。求若可以使任意一条边的边权翻倍,那怎样翻倍才能使其最短路长度的增值最多,即让一条路边权翻倍使得翻倍后的
UVA12538 自带版本控制功能的IDE Version Controlled IDE
摘要:
自带版本控制功能的IDE Version Controlled IDE 题目翻译: 题目比较简单明了,直接在原题看即可。 思路: 又是一道可以用rope水掉的紫题 用一个 \(past[cnt]\) 的 \(rope\) 来储存历史版本,没修改一次就储存一次,再用 \(now\) 来储存当前版本,其
P3850 [TJOI2007] 书架
摘要:
P3850 [TJOI2007] 书架 题目翻译: 原本有 \(n\) 本书,有 \(q\) 次插入操作,可以将任意书插入其中,最后共有 \(q\) 次查询,求某个位置上的书名。 思路: 又是一道可以用rope水掉的紫题 可以用 \(rope\) 储存每一个书名的编号,将对应编号用 insert 直
神级STL结构-rope大法(学习笔记)
摘要:
简介: 他是一个 \(STL\) 中自带的一种数据结构,是 pb_ds(Policy-Based Data Structures)库 的一个分支,由于他的底层是可持久化平衡树——红黑树,或块状链表。所以他的操作的复杂度几乎约等于 \(O(logn)\) 或 \(\sqrt n\) 。它可支持操作较多