## [A - First ABC (abc311 A)](https://atcoder.jp/contests/abc311/tasks/abc311_a) ### 题目大意 给定一个字符串,问最短的一个前缀,包含`A B C`这三个字符。 ### 解题思路 注意到这个前缀的末尾字母一定是这三个 ...
![](https://img2023.cnblogs.com/blog/3076680/202307/3076680-20230720164509097-438446554.png) # 1. 并不是每个算法都适用于所有的使用场景 # 2. 关注点 ## 2.1. 数据是在哪里压缩、存储和解压的 ...
传统TCP设计的可靠传输协议通过连接管理、数据确认和重传机制、流量控制以及多路复用技术实现了数据的可靠传输。但是,由于TCP协议的性能限制和网络拥塞等问题,传统TCP设计的可靠传输协议可能存在一些性能瓶颈。因此,在实际应用中,需要根据具体需求选择适合的可靠传输协议。 ...
说明 数组(含List)去重复在日常工作中经常遇到,很多时候用到Set数据结构,但有时候我们需要针对数据进行干预,这时候就需要用其他的实现方式了。以下列出各种的去重方式,基本含括了所有情况。 源码下载 https://github.com/microwind/algorithms/blob/main ...
D.Chocolate 题意: 有一个n×m的矩形巧克力,Kelin先手Walk Alone后手选一个点(i, j)并吃掉所有 x <= i, y <= j的巧克力,谁吃掉最后一块巧克力则输。 分析: 对矩形大小进行讨论: ①1×1时,Kelin必输 ②1×n或1×m时:Kelin可以选择吃掉n-1 ...
##**分治的核心思想是** 1. 自上而下通过递归不断将大问题拆分成两个或多个子问题,直至被拆分出来的子问题可以通过一些简单的方法解决 2. 然后再自下而上地用子问题的解求解大问题的解 3. 最终我们能得到初始问题的解 ##**解决分治问题的时候的代码基本就是** 1. 限制左边界 == 右边界的 ...
##一. 定义 二分图是节点由两个集合组成,且两个集合内部没有边的图。 换言之,存在一种方案,将节点划分成满足以上性质的两个集合。 比如下图就是一个二分图,两个集合的元素可以用两种颜色表示,每条边上连接的点属于不同的集合,相同集合的两个点上没有边 **注意:二分图中不存在元素为奇数的环** ![]( ...
# 合并有序数组 ## 方法1-递归 ```java //运用的思想就是比较谁大,谁就先被排进数组 public static void merge(int []a1,int i,int iEnd,int j,int jEnd, int []a2,int k){ //定义了一个a1数组,分了i,iE ...
定义 : 对一个有向图构造拓扑序列,排序类似流程图那样按先干什么后干什么这样排序 拿大学教学安排举个例子(图来自oi wiki) ![](https://img2023.cnblogs.com/blog/3184306/202307/3184306-20230719173144329-1370939 ...
Tip:建议完成 [Luogu P3919](https://www.luogu.com.cn/problem/P3919) 后阅读。 ### 目录 1. [模板](https://www.luogu.com.cn/problem/P3834):静态区间 $k$ 小值 2. [模板](https:/ ...
**生成树 : 如果连通图G的一个子图是一棵包含G的所有顶点的树,则该子图称为G的生成树** **最小生成树 : 边权和最小的生成树叫做最小生成树。如果原图不连通,则没有最小生成树** **求最小生成树有两种方法 : prim 和 kurskal** ## 一. prim算法 **将最小生成树看做一 ...
> 「观前提醒」 > > 「文章仅供学习和参考,如有问题请在评论区提出」 [toc] ## 定义 **欧拉函数**的符号表示是 $\varphi (n)$ ,表示 $1\sim n$ 中和 $n$ **互质**的数的个数。 例如,$\varphi (12) = 4$,即 $1,5,7,11$ 。 # ...
###bellman-ford算法的思想 : 若有向图有n个点,m条边 。 扫描所有边,对每条边进行一次松弛(即对a,b为端点 , 权重为w的边,dist[b] = min(dist[a] , dist[a] + w )) 重复此流程(最多重复n次)直到没有更新操作发生 ### 例题1 bellma ...
一道入门的树形DP。 首先我们对于数据进行有序化处理,这便于我们利用数据结构特点(可排序性)来发觉数据性质(有序、单调、子问题等等性质),以便于后续的转化、推理和处理。**有序化可以“转化和创造”性质** 首先将视角从无根树切换为有根树,这样我们就可以得到一个带有最优子结构、无后效性、子问题重叠性的 ...
# 回文比较 ## 步骤1.找中间点 ## 用到了查找链表中间节点-快慢指针法 ```java public ListNode middleNode (ListNode head){ ListNode p1=head; ListNode p2=head; while (p2!=null&&p2.ne ...
## 1. 图上bfs ### 例题 求距离 >给你一张 n 个点 m 条边的无向简单图,点的编号为 1 到 n,每条边的长度都是 1 >现在有 k 组询问,每组询问我们想知道两个点 u,v 的距离。 > >输入格式 > >第一行三个整数 n,m,k 分别表示图的点数、边数和询问数。 >接下来 m ...
# 判环算法01 ## 检验链表是否有环 ```java //判断环 public boolean hasCycle(ListNode head){ ListNode p1=head;//乌龟 ListNode p2=head;//兔子 while (p2!=null&&p2.next!=null) ...
# 反转链表-力扣206 ## 方法一 ```java public ListNode reverseList1(ListNode o1){ ListNode n1=null; ListNode p=o1; while(p!=null){ n1=new ListNode(p.val,n1);//插入 ...
在生活中太阳的东升西落,鸟类的南飞北归,四级的轮换,每天的上下班,海水的潮汐,每月的房租车贷等等,如果用程序员的视角看,这就是一个个的定时任务,在日常的开发工作中也有很多的定时任务场景 ...
一、NumPy介绍 NumPy是Python中科学计算的基础包,它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。 功能强大的N维数 ...