自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(113)
  • 收藏
  • 关注

原创 AtCoder Beginner Contest 397 F题(线段树)

因此,对于额外产生的贡献,我们可以用线段树实现区间加法,并维护区间最大值。假设我们现在已经枚举了第一个区间与第二个区间的分界点。的数字,如果其出现了多次,则下一次出现的下标为。表示第二个区间的起始端点。如果第二个区间与第三个区间的分断点。表示第二个区间的终止端点)。个贡献,还有可能多产生。中有多少个不同的数。中有多少个不同的数。的值相同的数的下标。所以,最终的答案就是。

2025-03-16 12:04:41 1012

原创 洛谷 P1850 [NOIP 2016 提高组] 换教室(期望DP)【 提高+/省选−】

节课使用交换申请的移动耗费的体力值的总和的期望值的最小值。个教室的最短路,因为数据范围较小,使用。

2025-03-05 20:41:43 621

原创 洛谷 P3205 [HNOI2010] 合唱队(区间DP)【普及+/提高】

因为只有一个人时只会有一种方案。最后一个加入队列的是第。最后一个加入队列的是第。

2025-02-25 16:11:21 906

原创 Codeforces Round 130 (Div. 2) E. Blood Cousins(LCA+DFS序+二分)【2100】

对于第二点,我们可以按照深度,将所有节点的DFS序全部存储到vector中,因为DFS序的单调性,直接二分查找即可。对于第一点,我们可以使用LCA算法在树上倍增,实现快速查询。此题有两个要点:第一,快速找到节点。为根的子树中找到与节点。深度相同的节点的个数。

2025-01-29 09:55:46 445

原创 Codeforces Round 276 (Div. 1) B. Maximum Value(数学+二分)【2100】

在排序去重后的数组中二分查找最大的。

2025-01-28 11:43:54 945

原创 Codeforces Round 642 (Div. 3) E. K-periodic Garland(DP+前缀和)

个字符组成的花环所需的最少操作次数。,分为两种情况:第一种情况是第。

2025-01-27 14:14:58 802

原创 Codeforces Round 190 (Div. 1) C. Ciel the Commander(树的重心)

则删掉这个节点和与这个节点相连的所有边后形成的所有子树,其节点的等级必须小于。因此,我们要让分解出来的子树要尽可能的小,也就是求。个等级,所以我们考虑尽可能节省地使用他们。假设我们规定一个节点的等级为。因为我们最多只能使用。,所以本题一定有解。

2025-01-25 12:32:52 398

原创 洛谷 P1687 机器人小Q(DP)

因为要按照顺序来给机器人充电,所以考虑。个对机器人进行充电,所用的最小天数为。最小时最后一天的充电时长最短为。函数起到取最小值的作用。

2025-01-25 00:26:06 1394

原创 洛谷 P1356 数列的整除性(DP,数学)

个数字构成的所有表达式,表达式的值模。

2025-01-16 18:16:52 601

原创 洛谷 P1523 旅行商简化版(DP)

我们可以将问题转化成两个人从同一个位置出发,走不同的路,最后到达相同终点的最短路径。时,第一个人走的上一个点只能是第。的所有点都已经被走过的最短路。时,其中一个人可以从第。个点,另一个人走到第。

2025-01-11 10:18:20 564

原创 洛谷 P2308 添加括号(区间DP)

对于打印添加括号的方法和中间和,递归处理即可。个括号能够得到的最优解。

2025-01-10 11:24:09 726

原创 洛谷 P3435 [POI2006] OKR-Periods of Words(扩展KMP+线段树做法)

因此我们可以在统计答案的过程中,用线段树来维护区间最大值,保证计算的答案是最优的。我们先用扩展KMP算法对字符串。(我们假设字符串的下标从。上的前缀最大值将变成。

2025-01-09 20:12:54 1220

原创 洛谷 P8703 [蓝桥杯 2019 国 B] 最优包含(dp)

个字符所需要修改的最少字符数。个字符中的一个匹配。

2025-01-07 21:03:56 1221

原创 Codeforces Hello 2025(A—D)

首先,最优答案一定在这样的线段上:最大值和最小值分别在线段的两个端点上。如果不在端点上,我们便可以通过缩短区间来减小(r-l)的值来增大答案。

2025-01-05 13:33:40 1057

原创 洛谷 P10185 [YDOI R1] Necklace(二项式定理,快速幂)

种珠子时对答案产生的贡献。根据二项式定理,易推得。种珠子以外所有珠子的选取方案数,则。统计所有珠子对答案的贡献之和即可。种珠子对答案的总贡献为。

2024-12-06 23:19:50 725

原创 洛谷 P2380 狗哥采矿(前缀和,二维dp)

这个格子,如果向左转移矿,则其左边的格子必选全部往左转移矿,同理,如果向上转移矿,则其上边的格子必须全部往上转移矿。这个格子向左转移矿或向上转移矿时的最大采矿量。为右下角的子矩阵中,如果。来维护每一行的前缀和,用。来维护每一列的前缀和。

2024-11-29 13:50:24 1032

原创 牛客周赛 Round 69

右边的序列,我们使用二分来找到满足条件的最靠左的端点(即两刀中靠右的那一刀)对于可能选择的所有方案,使用二进制压缩,直接暴力check即可。我们暴力枚举左端点(即两刀中靠左的那一刀),最后用加法原理直接计算答案即可。赛时没做出来,过两天补上…类似于初中学过的饮马问题。先使用前缀和进行预处理。维护区间最大值,二分。

2024-11-24 21:11:27 462

原创 AtCoder Beginner Contest 381(A—F)(字符串哈希,二分,状压dp)

我们可以分别以奇数开头和以偶数开头,对两个相邻的字符进行合并。如果相邻的两个字符相等,则合并为一个,如果不相等,则合并成一个。对于字符串的匹配问题,我们可以考虑使用字符串哈希,这样可以使判断区间字符串是否相等的时间复杂度将为。进行预处理,使得枚举每一个"/"时,查询长度的时间复杂度都可以降至。所隔开的区间,用双指针求出不包含重复数字的区间最大长度即可。的长度为偶数,则其开头的第一个字符,在原串中的位置要么是。,满足条件的子序列的长度,一定是一个凸函数。对于求凸函数的最大值,我们使用二分查找即可。

2024-11-23 13:05:47 1180

原创 洛谷 P4011 孤岛营救问题(BFS分层图最短路,状态压缩)

我们考虑对已获得的钥匙进行二进制状态压缩。注意:同一个格子可能有多把钥匙,一开始的。显然,我们直接使用BFS求最短路即可。这个格子,且当前已有钥匙的状态为。

2024-11-14 21:16:14 1271

原创 洛谷 P3043 [USACO12JAN] Bovine Alliance G

很容易想到,每一个连通块之间是互不影响的。因此我们可以先计算出每一个连通块的贡献,最后运用乘法原理,将所有连通块的贡献相乘。条无向边,现在要求你把每一条无向边都变成有向边,且每个点的出度最大为。因此,我们只需要用DFS统计出每一个连通块中的点数和边数即可。如上图所示,当连通块中有一个环的时候,只有两种方案。如上图所示,在无环的连通块中,一定存在一个点的出度是。无向图中的边数 = (入度 + 出度)/,一定没有符合要求的情况,贡献为。

2024-11-14 18:50:37 784

原创 洛谷 P2966 [USACO09DEC] Cow Toll Paths G(排序,Floyd最短路)

我们可以先将所有的点按照点权从小到大排序,通过枚举中间点。,我们可以用Floyd求一遍最短路。我们用两个数组分别记录从。

2024-11-14 11:14:57 723

原创 洛谷 P1948 [USACO08JAN] Telephone Lines S(二分+01BFS)

这是一道非常经典的题。我们考虑二分最大的花费。号节点的最短路径,如果。

2024-11-13 20:01:30 1267

原创 洛谷 P2055 [ZJOI2009] 假期的宿舍(最大流)

我们可以求出从源点到汇点的最大流,如果最大流的值与源点。连边的数量相等,则存在一种方案,否则不存在方案。再根据所有的认识关系,从。

2024-11-13 17:13:52 472

原创 洛谷 P1407 [国家集训队] 稳定婚姻(Tarjan强连通分量,无向图定向)

对于求环,我们可以使用Tarjan强连通分量。但Tarjan强连通分量是基于有向图的,而我们构造的确实一个无向图。Tarjan求强连通分量,如果一对夫妻在同一个强连通分量中,则婚姻是不安全的,否则就是安全的。容易发现,上图的婚姻关系是不稳定的。因此,处在一个环中的夫妻是可以更换的。观察下图,黑色的边为夫妻关系,红色的边为情人关系。我们可以尝试给无向图定向。

2024-11-13 16:10:50 448

原创 洛谷 P1725 琪露诺(线段树优化dp)

https://www.luogu.com.cn/problem/P1725

2024-11-11 19:05:41 1474

原创 洛谷 P1622 释放囚犯(区间dp)

表示这个区间内罪犯的人数,最后。是因为不需要给释放的罪犯喂肉。

2024-11-11 16:50:53 333

原创 牛客周赛 Round 67

非常明显的二分,注意此题会爆longlong,所以我这里使用了python。的最高几位,不断贪心即可。赛时没做出来,过两天补上…

2024-11-10 21:28:38 1135

原创 牛客周赛 Round 66(A—G)(并查集,线段树,思维,数位dp)

牛客周赛 Round 66(A—G)(并查集,线段树,思维,数位dp)

2024-11-04 21:34:56 966

原创 2024CCPC哈尔滨站J题

2024CCPC哈尔滨站J题题解

2024-11-04 19:48:20 1136

原创 洛谷 P3177 [HAOI2015] 树上染色(树上背包)

洛谷 P3177 [HAOI2015] 树上染色(树上背包)

2024-10-31 20:31:16 1256

原创 洛谷 P1272 重建道路(树上背包)

这是一个非常经典的背包问题。个节点需要花费的最小值。中选取节点,就要删除。

2024-10-31 16:56:58 528

原创 Educational Codeforces Round 88 E. Modular Stability

求出值域范围内有多少个它的倍数,然后使用组合数学计算答案即可。因此,我们可以枚举最小的。的倍数时才满足条件。

2024-10-29 21:13:11 1037

原创 Codeforces Round 946 (Div. 3) G. Money Buys Less Happiness Now(反悔贪心)

则需要进行反悔操作。从大根堆里面取出最大的。和一个大根堆,大根堆记录用了哪些。我们先尝试获得当前月的幸福,在每个月的月末,我们让。最终的答案即为大根堆中。我们维护当前拥有的钱。

2024-10-28 19:24:51 1118

原创 牛客周赛 Round 65(A—G)

从大到小排序,之后交换最大值和最小值的位置,遍历一遍比较谁大谁小即可。的结果刚好为病人症状的二进制数,则用当前使用药物的数量更新答案。为奇数,则不可能构造成功,因为每一次操作,都要让基地中最小的数。个药物能够治疗他的症状情况当作一个二进制数(即当病人的第。枚举每一个药物选或不选的情况。,则代表连最起码的基地都无法构造,直接输出。题,只是改一下数据范围即可。,我们考虑使用二进制状压。谁的单价低就全选哪一个。个药物,否则代表不使用第。这样的基地,否则就构造。时,才会保留药物的第。如果要求最小值:如果。

2024-10-27 21:59:28 1360

原创 Educational Codeforces Round 166 D. Invertible Bracket Sequences(线段树,二分)

想要反转一段区间之后的字符串仍然为正则括号序列,必须满足: 被反转的区间内,两种括号的数量相等。否则,反转之后的字符串绝无可能是正则括号序列。,则该区间反转之后的字符串仍然为正则括号序列。因为区间被反转之后,数组的区间最大值(因为是静态的,用ST表也可以)。的区间最大值具有单调不减的性质,因此区间右端点最大的值。上使用二分来求得满足条件的右端点的个数即可。,而想要字符串为正则括号序列,则所有的。,之后预处理出字符串的前缀和数组。枚举每一个被反转区间的左端点。,被反转区间的区间和为。的值所对应的数组下标。

2024-10-27 18:02:38 1026

原创 牛客小白月赛103(A,B,C,D,E)(模拟,找规律,计算几何,思维)

暴力枚举每一对点,求出两点所在直线的垂直平分线,扔到。的因子,根据因子,将下标分别存储到一个vector<排序之后判断一下相邻的三条边的长度是否相等。对于每一次查询,可以在vector<的排列,所以所有因子的规模是。暴力打表,肉眼观测即可。函数,我们可以倒着扫一遍。两个函数分开进行考虑。>中,可以使用map<函数,我们正着扫一遍。

2024-10-26 11:36:09 997

原创 Codeforces Round 673 (Div. 1) B. Make Them Equal(思维)

时可以最细化每一个数的操作,所以我们考虑所有操作围绕。加的数相同,所以每一次操作相当于将一个值从。

2024-10-25 15:25:23 952

原创 洛谷 P1186 玛丽卡(最短路,并查集,线段树)

我们枚举不在最短路径上的边,规定它是删除最短路径某一段后必定会走的边。这时我们只要找到该边替换的最短路径上的那一段路径,我们便可以知道删掉哪些边之后,最短路径会更新成。:因为我们要替换的最短路径上的那一段路径必然是连续的,因此我们可以将最短路径上的边视为点,整条路径相当于一个区间。因此我们可以用线段树来维护区间最大值。对于如何找到最短路径上被替换的那一段路径,我们可以考虑使用并查集来维护。,最短路径上的点的父亲规定为自己(即最短路径上的点为祖先)。,所以使用朴素Dijkstra更优。

2024-10-24 21:57:24 575

原创 Codeforces Round 660 (Div. 2) D. Captain Flint and Treasure(图论建模,拓扑排序)

的点,我们可以将其放入一个栈中,在最后统计到排列里。因此我们可以使用拓扑排序直接计算最终的排列,对于。连一条有向边,最后形成的图一定是一个拓扑图。个数对答案产生的贡献就是最优的。的,可以将其放到排列的后面。

2024-10-24 15:59:01 1154

原创 Codeforces Round 225 (Div. 1) C. Propagating tree(DFS序,树状数组)

为根的子树的所有节点进行一次操作,因此我们可以用DFS序来将每一棵子树的所有节点限定到一段连续的区间内。因此我们可以用一个树状数组来维护区间和,具体操作可见代码。操作,跟树的深度有关(也就是深度的奇偶性)。对于子树内每一个节点是进行。

2024-10-24 14:31:18 476

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除