ACM- ICPC
文章平均质量分 86
ACM算法竞赛
重生之我是cxk
这个作者很懒,什么都没留下…
展开
-
算法刷题-二叉树5
给定二叉树的根节点root,返回所有左叶子之和。原创 2023-11-03 20:40:03 · 234 阅读 · 0 评论 -
算法刷题-二叉树4
给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点。原创 2023-11-02 17:01:17 · 195 阅读 · 0 评论 -
算法刷题-二叉树3
给定一个,其所有叶子节点都在同一层,每个父节点都有两个子节点。填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为NULL。初始状态下,所有 next 指针都被设置为NULL。原创 2023-11-01 19:41:34 · 264 阅读 · 0 评论 -
算法刷题-二叉树
给定一个二叉树的root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。原创 2023-10-31 19:31:47 · 84 阅读 · 0 评论 -
代码随想录刷题-数组(二分查找)
给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1, -1]。你必须设计并实现时间复杂度为O(log n)的算法解决此问题。原创 2023-10-18 18:44:20 · 188 阅读 · 0 评论 -
LeetCode第369场周赛
给你一个下标从开始的整数数组nums和一个整数k。nums中的numskiinumsxxiAND。原创 2023-10-30 19:23:52 · 505 阅读 · 0 评论 -
算法刷题-二叉树
给你二叉树的根节点root,返回它节点值的遍历。原创 2023-10-29 13:36:19 · 105 阅读 · 0 评论 -
算法刷题-栈与队列
给你一个字符串数组tokens,表示一个根据表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。原创 2023-10-28 18:18:31 · 120 阅读 · 0 评论 -
算法刷题-栈与队列
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(pushpoppeekempty):实现MyQueueint pop()int peek()truefalse。原创 2023-10-27 19:39:08 · 100 阅读 · 0 评论 -
算法刷题-字符串
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须**修改输入数组**、使用 O(1) 的额外空间解决这一问题。原创 2023-10-26 15:27:42 · 76 阅读 · 0 评论 -
算法刷题-哈希表
给定两个字符串*s*和*t*,编写一个函数来判断*t*是否是*s*的字母异位词。**注意:**若*s*和*t*中每个字符出现的次数都相同,则称*s*和*t*互为字母异位词。原创 2023-10-24 19:14:44 · 208 阅读 · 0 评论 -
算法刷题-链表
给你一个链表的头节点head和一个整数val,请你删除链表中所有满足的节点,并返回。原创 2023-10-22 19:04:44 · 211 阅读 · 0 评论 -
算法刷题-数组
给定一个含有n个正整数的数组和一个正整数target找出该数组中满足其总和大于等于target的长度最小的,并返回其长度**。**如果不存在符合条件的子数组,返回0。原创 2023-10-22 19:01:55 · 250 阅读 · 0 评论 -
代码随想录刷题-数组双指针
给你一个数组nums和一个值val,你需要移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。原创 2023-10-19 21:39:10 · 73 阅读 · 0 评论 -
Codeforces-Round-895-Div-3
你有两个装有水的容器。第一个容器含有a克水,第二个容器含有b克水。这两艘船都非常大,可以容纳任意数量的水。您还有一个空杯子,最多可容纳c克水。一次,您可以从任何容器中舀出c克水,然后将其倒入容器中。请注意,一次倒入的水的质量。使容器中水的质量相等所需的最少移动次数是多少?请注意,您无法执行除所描述的移动之外的任何操作。原创 2023-09-09 13:03:33 · 388 阅读 · 0 评论 -
ACM算法竞赛中在编辑器中使用输入输出样例-CPH
我们可以在编辑器中创建三个文件,一个是main.cpp,一个是test.in,一个是test.out分别用来写代码,输入输入数据,显示输出数据这种方法的好处是不需要插件,在任何编辑器中都可以实现,例如Devc++,sublime,vscode,clion…可以在比赛的时候使用,例如篮球杯,天梯赛。。。以Clion为例:文件结构长这样,然后使用freopen来读取文件和写入文件,加上ifndef。原创 2023-08-10 14:00:58 · 1025 阅读 · 0 评论 -
Codeforces-Round-891-Div-3
给你一个由nnn个整数组成的数组。您的任务是确定是否可以将其所有元素着色为两种颜色,使得两种颜色的元素之和具有相同的奇偶性,并且每种颜色至少有一个元素着色。例如,如果数组为[1,2,4,3,2,3,5,41,2,4,3,2,3,5,41,2,4,3,2,3,5,4],我们可以将其着色为:[1,2,4,3,2,3,5,4\color{blue}{1},\color{blue}{2},\color{red}{4},\color{blue}{3},\color{red}{2},\color{red}{3},\co原创 2023-08-08 13:26:29 · 718 阅读 · 1 评论 -
对顶堆算法
对顶堆可以动态维护一个序列上的第k大的数,由一个大根堆和一个小根堆组成,原创 2023-07-31 19:10:12 · 243 阅读 · 0 评论 -
SG函数Nim游戏博弈论
给定一个有N个节点的有向无环图,图中某些节点上有棋子,两名玩家交替移动棋子。玩家每一步可将任意一颗棋子沿一条有向边移动到另一个点,无法移动者输掉游戏。对于给定的图和棋子初始位置,双方都会采取最优的行动,询问先手必胜还是先手必败。原创 2023-07-28 09:43:21 · 229 阅读 · 0 评论 -
台阶型Nim游戏博弈论
现在,有一个n级台阶的楼梯,每级台阶上都有若干个石子,其中第i级台阶上有ai个石子(i≥1两位玩家轮流操作,每次操作可以从任意一级台阶上拿若干个石子放到下一级台阶中(不能不拿)。已经拿到地面上的石子不能再拿,最后无法进行操作的人视为失败。问如果两人都采用最优策略,先手是否必胜。原创 2023-07-28 09:42:51 · 247 阅读 · 0 评论 -
Nim游戏博弈论
甲,乙两个人玩 nim 取石子游戏。nim 游戏的规则是这样的:地上有n堆石子(每堆石子数量小于104),每人每次可从任意一堆石子里取出任意多枚石子扔掉,可以取完,不能不取。每次只能从一堆里取。最后没石子可取的人就输了。假如甲是先手,且告诉你这n堆石子的数量,他想知道是否存在先手必胜的策略。原创 2023-07-28 09:42:19 · 343 阅读 · 0 评论 -
字典树Trie
Trie树又称字典树,前缀树。是一种可以高效查询前缀字符串的树,典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。`做题看到大量字符串或者大量字符就往Trie树或者哈希这边想,因为速度很快.原创 2023-07-27 17:56:54 · 169 阅读 · 0 评论 -
基础算法-快速幂运算
求a的b次方对p取模的值。原创 2023-07-25 16:24:38 · 79 阅读 · 0 评论 -
CF里面的一些线段树题目
Sereja has a bracket sequence $ s_{1},s_{2},…,s_{n} $ , or, in other words, a string $ s $ of length $ n $ , consisting of characters “(” and “)”.Sereja needs to answer $ m $ queries, each of them is described by two integers $ l_{i},r_{i} $ $ (1原创 2023-07-25 15:06:11 · 118 阅读 · 0 评论 -
有向图的强联通分量-SCC-Tarjan算法
强连通分量(Strongly Connected Components,SCC)的定义是:极大的强连通子图。下图中,子图{1,2,3,4}为一个强连通分量,因为顶点1,2,3,4两两可达。{5},{6}也分别是两个强连通分量。原创 2023-07-25 13:49:24 · 281 阅读 · 0 评论 -
数学知识-求组合数三种算法
组询问,每组询问两个整数,求。组询问,每组询问两个整数,求。原创 2023-07-20 19:34:50 · 78 阅读 · 0 评论 -
全源最短路Johnson算法
给定一个包含 nnn 个结点和 mmm 条带权边的有向图,求所有点对间的最短路径长度,一条路径的长度定义为这条路径上所有边的权值和。注意:边权可能为负,且图中可能存在重边和自环;部分数据卡 nnn 轮 SPFA 算法。第 111 行:222 个整数 n,mn,mn,m,表示给定有向图的结点数量和有向边数量。接下来 mmm 行:每行 333 个整数 u,v,wu,v,wu,v,w,表示有一条权值为 www 的有向边从编号为 uuu 的结点连向编号为 vvv 的结点。若图中存在负环,输出仅一行 −1-1−1。若原创 2023-07-19 10:12:40 · 315 阅读 · 0 评论 -
数学知识-数论分块
求∑i1n⌊in⌋。原创 2023-07-16 23:20:03 · 183 阅读 · 0 评论 -
SPFA算法-最短路-负环
只有本轮被更新的点,其出边才有可能引起下一轮的松弛操作因此用队列来维护被更新的点的集合。vis[u]标记u点是否在队内,cntv记录边数,判负环。给定一个 nnn 个点的有向图,请求出图中是否存在从顶点 111 出发能到达的负环。负环的定义是:一条边权之和为负数的回路。本题单测试点有多组测试数据。输入的第一行是一个整数 TTT,表示测试数据的组数。对于每组数据的格式如下:第一行有两个整数,分别表示图的点数 nnn 和接下来给出边信息的条数 mmm。接下来 mmm 行,每行三个整数 u,v,wu, v, wu原创 2023-07-11 13:51:12 · 114 阅读 · 0 评论 -
Bellman-Ford-贝尔曼-福特-算法求最短路-负环
Bellman-Ford-贝尔曼-福特-算法求最短路-负环原创 2023-07-09 18:05:39 · 542 阅读 · 0 评论 -
Codeforces-Round-883-Div-3
链接:https://codeforces.com/contest/1846。原创 2023-07-08 18:10:34 · 734 阅读 · 0 评论 -
拓扑排序Kahn算法与DFS算法
给定一个有向无环图(DAG),排出所有顶点的一个序列A满足:对于图中每条有向边(x,y),x在A中都出现在y之前,则A是该图中的顶点的一个拓扑序拓扑排序可以判断 有向图中是否有环 ,可以生成拓扑序列。原创 2023-07-07 19:48:46 · 174 阅读 · 0 评论 -
概率DP求期望
链接:https://www.luogu.com.cn/problem/P1850。原创 2023-07-03 20:04:42 · 101 阅读 · 0 评论 -
高级数据结构-线段树
线段树树基于分治思想的二叉树,用来维护区间信息(区间和、区间最大值、区间最小值等等)。可以在Ologn的时间内完成区间信息的查询和修改。原创 2023-06-13 13:36:52 · 990 阅读 · 0 评论 -
Dijkstra算法求最短路
Dijkstra算法是单源最短路算法,是用来求一个点到其他所有点点最短距离,使用小根堆优化后时间复杂度大概为Omlogn注意:不可以解决存在负权边的问题。原创 2023-06-11 13:39:38 · 537 阅读 · 0 评论 -
动态规划-概率DP
袋子里有w只白鼠和b只黑鼠 ,A和B轮流从袋子里抓,谁先抓到白色谁就赢。A每次随机抓一只,B每次随机抓完一只之后会有另一只随机老鼠跑出来。如果两个人都没有抓到白色则B赢。A先抓,问A赢的概率。原创 2023-06-04 16:18:30 · 493 阅读 · 0 评论 -
动态规划-数位DP
链接:https://www.acwing.com/problem/content/1084/科协里最近很流行数字游戏。某人命名了一种不降数,这种数字必须满足从左到右各位数字呈非下降关系,如123446。现在大家决定玩一个游戏,指定一个整数闭区间ab,问这个区间内有多少个不降数。原创 2023-05-25 11:14:29 · 722 阅读 · 1 评论 -
动态规划-树形DP
链接:https://www.acwing.com/problem/content/848/给定一颗树,树中包含 $ n $ 个结点(编号 $ 1 \sim n $)和 $ n-1 $ 条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。原创 2023-05-24 23:16:29 · 928 阅读 · 0 评论 -
动态规划-区间DP
设有NN≤300堆石子排成一排,其编号为123⋯N。每堆石子有一定的质量mimi≤1000。现在要将这N堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻。合并时由于选择的顺序不同,合并的总代价也不相同。试找出一种合理的方法,使总的代价最小,并输出最小代价。原创 2023-05-23 21:21:16 · 715 阅读 · 0 评论 -
动态规划-状态压缩DP
在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。注:数据有加强(2018/4/25)原创 2023-05-21 10:25:27 · 533 阅读 · 1 评论