- 博客(41)
- 收藏
- 关注
原创 Codeforces Round 784 (Div. 4)
题意要我们找出这样的字符串的对数:这两个字符串只有一个位置对应的字符不同。我们可以用二维数组记录每种字符串的个数,再模拟即可。,操作次数是不限的,所以只需要判断初始条件下所有奇数位置的元素奇偶性是否一致,和所有偶数位置的奇偶性是否一致。的字符串最终都可以实现。因此,我们只需要判断所有连续。因为每次操作都是对所有的奇数位置或者所有的偶数位置。经过分析验证,任意连续区间内同时包含。,就需要归零空单元格数,重新向上查找。遍历每一列,从下往上找连续空单元格。相向前后指针,注意边界的处理。,如果在这过程中遇到石头。
2024-12-08 17:08:04
419
原创 最小生成树(Kruskal算法和Prim算法)
Kruskal算法适用于稀疏图,需要排序所有边。Prim算法适用于密集图,通过最小堆实现贪心选择。这两种算法都是解决最小生成树问题的经典方法,根据图的特性选择合适的算法可以提高效率。
2024-12-03 21:42:08
530
原创 并查集算法
(Union-Find)是一种数据结构,主要用于解决一些动态连通性问题,比如判断两个节点是否属于同一个集合,以及合并两个集合。它在图论中的应用非常广泛,比如最小生成树(Kruskal算法)和网络连通性问题。接下来,我将详细介绍并查集的基本原理及实现。
2024-12-02 18:54:40
912
原创 Codeforces Round 918 (Div. 4)
分析可知, 遇到元音的时候,需要在元音前两个的位置分割。不妨倒序遍历,将每个分割部分存入。模拟即可,也可以先排序。判断总和是否为平方数。
2024-12-01 14:51:47
492
原创 Educational Codeforces Round 151 (Rated for Div. 2)
【代码】Educational Codeforces Round 151 (Rated for Div. 2)
2024-11-30 21:57:35
725
原创 最短路算法(Dijkstra算法和Floyd算法)
迪杰斯特拉算法是一种高效的单源最短路径算法,广泛应用于网络路由、地理信息系统等领域。通过结合最小堆可以有效优化其性能,但仅适用于非负权重图。弗洛伊德算法在处理任意两点间最短路径问题中具有较高的效率,尤其适合处理小规模的稠密图。在包含负权边的情况下也可以正确执行,广泛应用于路径优化、交通网络等领域。
2024-11-30 11:33:47
1879
原创 Codeforces Round 944 (Div. 4)
固定其中一条直线,根据另一条直线的状态进行判断。重新进行排列,问是否存在排列后的字符串。输入两个数,分别输出较小值和较大值。找到两个互不相同的字符进行。
2024-11-29 16:18:16
712
原创 树的平衡因子
以下是完整的 C++ 程序,它会构建一棵二叉排序树,并为每个节点计算和输出其平衡因子。如果插入顺序不同,可能出现非 0 的平衡因子。
2024-11-27 09:18:50
402
原创 二叉排序树
int val;// 节点的值// 左子节点指针// 右子节点指针TreeNode(int v) : val(v), left(nullptr), right(nullptr) {} // 构造函数private:// 树的根节点public:BinarySearchTree() : root(nullptr) {} // 构造函数// 插入节点// 查找节点// 删除节点// 中序遍历(验证结果)private:// 插入节点(递归实现)// 创建新节点。
2024-11-23 11:45:53
201
原创 Codeforces Round 984 (Div. 3)
与蛇形填数思路一致,用偏移量法求取每一个外围的字符串,统计这个字符串在循环移位后包含。的个数,然后计算在改变位置改变后对改变前的影响(可以分别计算在改变位置处。的个数,计算差值),注意遍历的边界范围。时的边界(计算多少个)哈希表(数组哈希或者。子串的最大个数,加到。
2024-11-09 15:03:27
810
原创 Codeforces Round 966 (Div. 3)
我们可以先预处理前缀和,然后贪心每次找最左边的。,计算区间和,然后缩小区间重复操作即可。
2024-10-27 16:31:31
199
原创 Educational Codeforces Round 168 (Rated for Div. 2)
给出一个正则括号序列,但是奇数位置的字符都缺失了,只保留了偶数位置上的字符,求出使括号序列合法时的最小代价。注意:偶数位置上的的字符是已知的,那么可以贪心使每个左括号尽可能早得匹配。
2024-10-27 15:08:44
248
原创 Codeforces Round 962 (Div. 3)
区间按字典序排序后需要进行多少次操作才能相等(可进行操作为:对。,求出字符串前缀中26个字母分别有多少个,然后在查询中就可以在。,要求计算两个字符串在。内任意字符作任意替换)次查询,每次查询给出。
2024-10-25 22:04:40
144
原创 Codeforces Round 909 (Div. 3)
求给定数组的连续子序列和的最大值,并且要求子序列中相邻元素奇偶性不同。,与求数组最长递增子序列类似。
2024-10-25 21:28:23
162
原创 24点游戏判断
给出4个正整数操作数,你的任务是使用运算符(+,-,*,/)和括号对操作数进行计算,分析是否能得到24,每个操作数只能使用1次,运算符和括号可以多次使用,注意所有的中间结果都必须是整数。暴力回溯,每次从数组中任选两个数,进行任意操作进行合并,将合并的数加入数组中,更新数组,然后进行回溯操作,直到数组元素为。输入包括多行,每行4个正整数,范围是[1,13],输入以0 0 0 0标记结束。若输入的4个操作数能计算出24,输出Yes,否则输出No。注意:在进行除法操作时,需要处理商不为整数的情况。
2024-10-25 12:24:32
643
原创 Codeforces Round 980 (Div. 2)
考虑到反转数跟每对数的大小有关系,大数在前会影响后面的数,小数在后会影响前面的数,所以我们可以贪心将平均数大的放在后面,平均数小的放在前面。,在所有位置都按每次的最小值,最后我们还需要纪录并加上需要。根据题意,我们需要求保证至少收到。罐柠檬水所需的最少按键次数,可以先。
2024-10-20 23:13:22
233
原创 求N!的末尾零的个数
0 来自 [1, n] 之间每个数含有的因数2、5的个数,由于每时每刻含有因数2的个数一定远多于因数5的个数,因此我们只需要计算因数5的个数。
2024-10-16 20:20:00
332
原创 串的匹配算法
进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个。BF算法,即暴力(Brute Force)算法,是普通的。最长相等前后缀:两者的交集的中的最大长度。注意:若字符串长度为1,则没有前后缀。前缀:包含头不包含尾的所有子串。后缀:包含尾不包含头的所有子串。时间复杂度:O(mn)
2024-09-28 13:19:21
711
原创 EPIC Institute of Technology Round Summer 2024 (Div. 1 + Div. 2)
【代码】EPIC Institute of Technology Round Summer 2024 (Div. 1 + Div. 2)
2024-09-28 13:12:18
201
原创 EPIC Institute of Technology Round Summer 2024 (Div. 1 + Div. 2)
【代码】EPIC Institute of Technology Round Summer 2024 (Div. 1 + Div. 2)
2024-09-28 11:26:43
345
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人