E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
AcWing算法基础课模板题
AcWing
785. 快速排序
快排:分治思想(先分完再递归)步骤:1.确定分界点:一般q[l]、q[(l+r)/2]、q[r](l,r为排序的闭区间)2.调整区间:使左边部分=x(注意:x不一定在分界点)------难点3.递归处理左右两端如何做到第二步?方案一:暴力法,开辟额外空间1.开两个数组a[],b[]2.遍历q[l]~q[r],小于等于x放a[],大于x放b[]3.将a[]放入q[],将b[]放入q[]方案二:优美1
ZZZZZrt
·
2024-02-11 04:36
AcWing数据结构与算法
算法
c++
数据结构
【
ACWing
】785. 快速排序
题目地址:https://www.
acwing
.com/problem/content/description/787/给定一个长nnn的数列,将其从小到大排序。
记录算法题解
·
2024-02-11 04:35
AC
数组
字符串
链表与模拟
算法
快速排序
c++
排序算法
AcWing
785. 快速排序
AcWing
785.快速排序题目链接:
AcWing
785.快速排序题目描述给定你一个长度为n的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。
MJHorseman
·
2024-02-11 04:35
算法
c++
排序
快速排序
Acwing
---837. 连通块中点的数量
连通块中点的数量1.题目2.基本思想3.代码实现1.题目给定一个包含nnn个点(编号为1∼n1∼n1∼n)的无向图,初始时图中没有边。现在要进行mmm个操作,操作共有三种:Cab,在点a和点b之间连一条边,a和b可能相等;Q1ab,询问点a和点b是否在同一个连通块中,a和b可能相等;Q2a,询问点a所在连通块中点的数量;输入格式第一行输入整数nnn和mmm。接下来mmm行,每行包含一个操作指令,指
amant 柒少
·
2024-02-11 00:44
#
Acwing
刷题
算法
java
数据结构
Acwing
---836. 合并集合
合并集合1.题目2.基本思想3.代码实现1.题目一共有nnn个数,编号是1∼n1∼n1∼n,最开始每个数各自在一个集合中。现在要进行mmm个操作,操作共有两种:Mab,将编号为aaa和bbb的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作;Qab,询问编号为aaa和bbb的两个数是否在同一个集合中;输入格式第一行输入整数n和m。接下来m行,每行包含一个操作指令,指令为Mab或Q
amant 柒少
·
2024-02-11 00:13
#
Acwing
刷题
java
算法
开发语言
深刻理解树状数组--树状数组构造定义与动态维护区间和的合理性证明
文章目录一.树状数组概览二.树状数组构造定义lowbit运算树状数组的结点值的定义树状数组结点层次的定义树状数组父子结点关系定义三.关于树状数组结构的重要证明引理1引理2树状数组
模板题
一.树状数组概览树状数组的下标从
摆烂小青菜
·
2024-02-10 20:47
图论数据结构
数据结构
进阶数据结构
数学证明
基于完全二叉树实现线段树-- [爆竹声中一岁除,线段树下苦踌躇]
文章目录一.完全二叉树完全二叉树的父子结点引索关系二.线段树三.基于完全二叉树实现线段树关于线段树的结点数量问题的证明递归建树递归查询区间和递归单点修改线段树
模板题
一.完全二叉树完全二叉树的物理结构是线性表
摆烂小青菜
·
2024-02-10 20:47
图论数据结构
算法笔记
数据结构
深度优先
算法
二维差分---三维差分算法笔记
文章目录一.二维差分构造差分二维数组二维差分算法状态dp求b[i][j]数组的二维前缀和图解二.三维前缀和与差分三维前缀和图解:三维差分核心公式图解:
模板题
一.二维差分给定一个原二维数组a[i][j],
摆烂小青菜
·
2024-02-10 20:44
算法笔记
算法
笔记
算法------(11)并查集
例题:(1)
Acwing
836.合并集合并查集就是把每一个集合看成一棵树,记录每个节点的父节点。合并集合就是把一棵树变成另一棵树的子树,即把一棵树的父节点变为另一棵树的父节点的儿子。
FancySuMMer11
·
2024-02-10 12:09
算法基础课
算法
c++
二、数据结构
链表单链表https://www.
acwing
.com/problem/content/828/#includeusingnamespacestd;constintN=1e5+10;//head:头节点的指向
duanyq666
·
2024-02-10 09:44
算法基础课
数据结构
算法
Acwing
---835. Trie字符串统计
Trie字符串统计1.题目2.基本思想3.代码实现1.题目维护一个字符串集合,支持两种操作:Ix向集合中插入一个字符串x;Qx询问一个字符串在集合中出现了多少次。共有N个操作,所有输入的字符串总长度不超过10510^5105,字符串仅包含小写英文字母。输入格式第一行包含整数N,表示操作数。接下来N行,每行包含一个操作指令,指令为Ix或Qx中的一种。输出格式对于每个询问指令Qx,都要输出一个整数作为
amant 柒少
·
2024-02-10 05:15
#
Acwing
刷题
java
算法
数据结构
Acwing
---143. 最大异或对
最大异或对1.题目2.基本思想3.代码实现1.题目在给定的N个整数A1,A2……AN中选出两个进行xor(异或)运算,得到的结果最大是多少?输入格式第一行输入一个整数N。第二行输入N个整数A1~AN。输出格式输出一个整数表示答案。数据范围1≤N≤105,1≤N≤10^5,1≤N≤105,000≤AiAiAi>i&1其实就是我想知道x的二进制表示中的第i位(二进制位从第0位开始表示第0位-第31位)
amant 柒少
·
2024-02-10 05:15
算法
java
数据结构
Acwing
---154. 滑动窗口
滑动窗口1.题目2.基本思想3.代码实现1.题目给定一个大小为n≤106n≤10^6n≤106的数组。有一个大小为k的滑动窗口,它从数组的最左边移动到最右边。你只能在窗口中看到k个数字。每次滑动窗口向右移动一个位置。以下是一个例子:该数组为[13-1-35367],kkk为333。你的任务是确定滑动窗口位于每个位置时,窗口中的最大值和最小值。输入格式输入包含两行。第一行包含两个整数nnn和kkk,
amant 柒少
·
2024-02-10 05:14
#
Acwing
刷题
算法
java
数据结构
Acwing
---797.差分
差分1.题目2.基本思想3.代码实现1.题目输入一个长度为nnn的整数序列。接下来输入mmm个操作,每个操作包含三个整数l,r,cl,r,cl,r,c,表示将序列中[l,r][l,r][l,r]之间的每个数加上ccc。请你输出进行完所有操作后的序列。输入格式第一行包含两个整数nnn和mmm。第二行包含nnn个整数,表示整数序列。接下来mmm行,每行包含三个整数l,r,cl,r,cl,r,c,表示一
amant 柒少
·
2024-02-10 05:44
#
Acwing
刷题
算法
java
数据结构
Acwing
---829. 模拟队列
模拟队列1.题目2.基本思想3.代码实现1.题目实现一个队列,队列初始为空,支持四种操作:pushx–向队尾插入一个数x;pop–从队头弹出一个数;empty–判断队列是否为空;query–查询队头元素。现在要对队列进行MMM个操作,其中的每个操作333和操作444都要输出相应的结果。输入格式第一行包含整数MMM,表示操作次数。接下来MMM行,每行包含一个操作命令,操作命令为pushx,pop,e
amant 柒少
·
2024-02-10 05:44
#
Acwing
刷题
java
数据结构
算法
Acwing
--845. 八数码(BFS)
在一个3×3的网格中,1∼8这8个数字和一个x恰好不重不漏地分布在这3×3的网格中。例如:123x46758在游戏过程中,可以把x与其上、下、左、右四个方向之一的数字交换(如果存在)。我们的目的是通过交换,使得网格变为如下排列(称为正确排列):12345678x例如,示例中图形就可以通过让x先后与右、下、右三个方向的数字交换成功得到正确排列。交换过程如下:123123123123x464x6456
wowon~
·
2024-02-10 01:28
搜索技术
算法
c++
BFS
【洛谷】KMP算法
模板题
(C)
B2118验证子串题源:B2118验证子串此题可作为KMP算法的
模板题
。
_廿_尘
·
2024-02-10 00:09
#
题记
算法
c语言
数据结构
AcWing
1224 交换瓶子(简单图论)
[题目概述]有N个瓶子,编号1∼N,放在架子上。比如有5个瓶子:21354要求每次拿起2个瓶子,交换它们的位置。经过若干次后,使得瓶子的序号为:12345对于这么简单的情况,显然,至少需要交换2次就可以复位。如果瓶子更多呢?你可以通过编程来解决。输入格式第一行包含一个整数N,表示瓶子数量。第二行包含N个整数,表示瓶子目前的排列状况。输出格式输出一个正整数,表示至少交换多少次,才能完成排序。数据范围
techpupil
·
2024-02-09 22:05
图论
算法
数据结构
AcWing
5147. 数量 题解
题目描述:请你统计,1~n的范围内一共有多少个正整数满足其十进制表示不含4和7以外的数字。样例:输入数据:4输出数据:1思路讲解:暴力dfs即可,存一个当前遍历到的变量,如果大于n就return,否则继续搜索。对于下一步只有两种可能,一种是在末尾添加一个4,另一种则是在末尾添加一个7。C++代码:#includeusingnamespacestd;longlongn;inttot=0;voiddf
gu_zhou_suo_li_weng
·
2024-02-09 16:38
深度优先
DFS——C++
具体算法讲解可以参考https://blog.csdn.net/qq_63055790/article/details/133961017例题:https://www.
acwing
.com/activity
松定
·
2024-02-09 13:28
深度优先
c++
算法
蓝桥杯省赛专题训练之双指针、BFS与图论(相关真题和
模板题
)
题目:1238.日志统计题解:双指针。#includeusingnamespacestd;typedeflonglongLL;typedefpairPII;constintN=1e5+10;intn,d,k;PIIa[N];//queueq[N];intct[N];boolsta[N];intmain(){cin>>n>>d>>k;for(inti=0;i=d+a[i].first){ct[a[i
岁忧
·
2024-02-09 09:05
AcWing
蓝桥杯
c++
算法
蓝桥杯
C++算法之树状数组与线段树
AcWing
1264.动态求连续区间和详细题解
AcWing
,题解,动态求连续区间和,https://www.
acwing
.com/solution/content/7526/一、树状数组1.
AcWing
1264
算法下的星辰曲
·
2024-02-09 09:02
蓝桥杯
c++
开发语言
C++算法之数学与简单DP
1.
AcWing
2.01背包问题分析思路代码实现#includeusingnamespacestd;constintN=1010;intdp[N][N];intv[N],w[N];intn,m;intmain
算法下的星辰曲
·
2024-02-09 09:31
蓝桥杯
c++
开发语言
C++算法之枚举、模拟与排序
1.
AcWing
1210.连号区间数分析思路由题意是在1∼N的某个排列中有多少个连号区间,所以每个数出现并且不重复!
算法下的星辰曲
·
2024-02-09 09:31
蓝桥杯
算法
c++
C++算法之二分与前缀和(2)
1.
AcWing
795.前缀和分析思路由数列的前n项和可知,s[i]=a[i]+s[i-1],如果我们要计算[l,r]的和,可用公式s[r]-s[l-1]!
算法下的星辰曲
·
2024-02-09 09:01
蓝桥杯
c++
开发语言
AcWing
803. 区间合并
原题链接:
AcWing
803.区间合并https://www.
acwing
.com/problem/content/805/解题思路:①按左端点对区间进行排序。
算法下的星辰曲
·
2024-02-09 09:00
算法基础课
算法
c++
C++算法之递归与递推(2)
二、递推(与递归相反,先求出子问题再去算出原问题)1.
AcWing
717.简单斐波那契分析过程先定义f(1)和f(2)作为边界,然后f(n)=f(n-1)+f(n-2),此题可以直接用滚动数组的雏形来算
算法下的星辰曲
·
2024-02-09 09:30
蓝桥杯
算法
c++
数据结构
C++算法之双指针、BFS和图论
一、双指针1.
AcWing
1238.日志统计分析思路前一区间和后一区间有大部分是存在重复的我们要做的就是利用这部分来缩短我们查询的时间并且在使用双指针时要注意对所有的博客记录按时间从小到大先排好顺序因为在有序的区间内才能使用双指针记录两个区间相差相当于把一个有序的时间序列进行每次递增
算法下的星辰曲
·
2024-02-09 09:28
c++
宽度优先
图论
朴素dijkstra算法 :
AcWing
849. Dijkstra求最短路 I
Dijkstra算法分析:(适用于稠密图,边权非负图)Dijkstra算法的流程如下:Dijkstra算法基于贪心思想,它只适用于所有边的长度都是非负数的图。当边长z都是非负数时,全局最小值不可能再被其他节点更新,故在第1步中选出的节点x必然满足:dist[x]已经是起点到x的最短路径。我们不断选择全局最小值进行标记和扩展,最终可得到:起点1到每个节点的最短路径的长度。(求得起点到所有终点的最短路
Brightess
·
2024-02-09 05:58
图论
最短路问题
算法
图论
AcWing
1238 日志统计(双指针算法)
题目概述小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有N行。其中每一行的格式是:tsid表示在ts时刻编号id的帖子收到一个”赞”。现在小明想统计有哪些帖子曾经是”热帖”。如果一个帖子曾在任意一个长度为D的时间段内收到不少于K个赞,小明就认为这个帖子曾是”热帖”。具体来说,如果存在某个时刻T满足该帖在[T,T+D)[T,T+D)[T,T+D)这段时间内(注意是左闭右开区间)收到不
techpupil
·
2024-02-09 04:04
双指针
算法
AcWing
1101 献给阿尔吉侬的花束(bfs宽搜)
[题目概述]阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫。今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。现在研究员们想知道,如果阿尔吉侬足够聪明,它最少需要多少时间就能吃到奶酪。迷宫用一个R×CR×CR×C的字符矩阵来表示。字符S表示阿尔吉侬所在的位置,字符E表示奶酪所在的位置,字符#表示墙壁,字符.表示可以通行。阿尔
techpupil
·
2024-02-09 04:33
宽度优先
算法
容斥原理级笔记
容斥原理:|s1⋃s2⋃s3……⋃sn|=|s1|+|s2|+……|s3|-|s1⋂s2|-……+|s1⋂s2⋂s3|+……应用一(基础):
AcWing
能被整除的数思路:(1)容斥原理的直接应用。
奔跑的星黛露
·
2024-02-08 09:55
算法
算法
第二讲:数据结构
AcWing
826. 单链表
目录数组模拟链表数组模拟单链表单链表思路&&代码看图更好理解推荐一下y总的刷题网站数组模拟链表笔试的题目大部分大部分涉及到链表都是十万级别的用数组的方式创建链表速度很快,不会超时,而如果用new一个结构体的话大部分就是比较慢的所以不建议使用数组模拟单链表单链表在笔试题中用的最多是领接表领接表最多的应用是存储数和图双链表最多的应用就是来优化某些问题假设当前的节点我们可以用e[N]来表示当前节点的值是
橘子味的茶二
·
2024-02-08 09:23
acwing算法基础
数据结构
第二讲 数据结构
AcWing
827. 双链表
目录双链表代码&&思路双链表实现一个双链表,双链表初始为空,支持5种操作:在最左侧插入一个数;在最右侧插入一个数;将第k个插入的数删除;在第k个插入的数左侧插入一个数;在第k个插入的数右侧插入一个数现在要对该链表进行M次操作,进行完所有操作后,从左到右输出整个链表。注意:题目中第k个插入的数并不是指当前链表的第k个数。例如操作过程中一共插入了n个数,则按照插入的时间顺序,这n个数依次为:第1个插入
橘子味的茶二
·
2024-02-08 09:20
acwing算法基础
数据结构
算法
统计数字出现次数的数位动态规划解法-数位统计DP
原题链接:338.计数问题-
AcWing
题库数位动态规划概述数位DP是一种用于解决与数字的各个数位相关的问
派大星45599
·
2024-02-08 05:01
数据结构与算法分析
动态规划
算法
java
状态压缩DP--最短Hamilton路径问题的状态压缩动态规划解法
题目链接:91.最短Hamilton路径-
AcWing
题库问题描述算法概述状态压缩动态规划可以在处理特定类型的组合问题时非常有用,尤其是当问题涉及到需要考虑集合
派大星45599
·
2024-02-08 05:00
数据结构与算法分析
动态规划
算法
Acwing
778.字符串最大跨越
有三个字符串S,S1,S2,其中,S长度不超过300,S1和S2的长度不超过10。现在,我们想要检测S1和S2是否同时在S中出现,且S1位于S2的左边,并在S中互不交叉(即,S1的在S的左边界点的左侧)。计算满足上述条件的最大跨距(即,最大间隔距离:最右边的S2的起始点与最左边的S1的终止点之间的字符数目)。如果没有满足条件的S1,S2存在,则输出−1。例如,S=abcd123ab888efghi
Mbigmouse
·
2024-02-08 04:40
c++
算法
开发语言
Acwing
777.字符串的乘方
给定两个字符串a和b,我们定义a×b为他们的连接。例如,如果a=abc而b=def,则a×b=abcdef。如果我们将连接考虑成乘法,一个非负整数的乘方将用一种通常的方式定义:a0=``(空字符串),a(n+1)=a×(an)。输入格式输入包含不超过10组测试样例,每组测试样例占一行。每组样例包含一个由小写字母构成的字符串s,s的长度不超过100,且不包含空格。最后的测试样例后面将是一个点号作为一
Mbigmouse
·
2024-02-08 04:40
算法
c++
开发语言
ACWing
776.字符串移位包含问题
对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串。给定两符s和s2,要求判定其中一个字符串是否是另一字符串通过若干次循环移位后的新字符串的子串。例如CDAA是由AABCD两次移位后产生的新串BCDAA的子串,而ABCD与ACBD则不能通过多次移位来得到其中一个字符串是新串的子串。输入格式共一行,包含两个字符串,中间由单个空格隔开。字符串只包含字母和数字,长度
Mbigmouse
·
2024-02-08 04:09
算法
c++
开发语言
数论 之 约数篇
约数1)试除法求约数原题链接:869.试除法求约数-
AcWing
题库思路:与上面的试除法求质数很相似a|b的意思是,b%a=0如果x|n那么一定有(n/x)|n,所以,著需要求一个,另一个直接能得到核心代码
海风许愿
·
2024-02-08 04:21
Acm算法
算法
数据结构
c++
开发语言
树的重心(dfs深度搜索)
树的重心原题链接:846.树的重心-
AcWing
题库邻接表存储树图模板代码voidadd(inta,intb){e[id]=b,ne[id]=h[a],h[a]=id++;}dfs搜索树模板代码voiddfs
海风许愿
·
2024-02-08 04:51
Acm算法
数据结构
c++
深度优先
算法
图论
组合数 与卡特兰数
组合数与卡特兰数1a,b比较小时采用预处理方法,提前将所有的组合数都算出来,到时候直接查表采用的公式是C(a,b)=C(a-1,b)+C(a-1,b-1)原题链接:885.求组合数I-
AcWing
题库核心代码
海风许愿
·
2024-02-08 04:50
Acm算法
c++
算法
数据结构
c++
Acwing
141 周赛 解题报告 | 珂学家 | 逆序数+奇偶性分析
前言整体评价很普通的一场比赛,t2思维题,初做时愣了下,幸好反应过来了。t3猜猜乐,感觉和逆序数有关,和奇偶性有关。不过要注意int溢出。欢迎关注:珂朵莉的天空之城A.客人数量题型:签到累加和即可importjava.io.BufferedInputStream;importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[
珂朵莉MM
·
2024-02-08 01:37
Acwing周赛
解题报告
java
开发语言
算法
矩阵
线性代数
模拟栈相关练习
Acwing
828模拟栈实现一个栈,栈初始为空,支持四种操作:pushx–向栈顶插入一个数x;pop–从栈顶弹出一个数;empty–判断栈是否为空;query–查询栈顶元素。
不想睡觉_
·
2024-02-07 17:04
数据结构
算法
数据结构
模拟队列相关练习
Acwing
829模拟队列实现一个队列,队列初始为空,支持四种操作:pushx–向队尾插入一个数x;pop–从队头弹出一个数;empty–判断队列是否为空;query–查询队头元素。
不想睡觉_
·
2024-02-07 17:04
数据结构
算法
数据结构
链表相关练习
Acwing
826单链表实现一个单链表,链表初始为空,支持三种操作:(1)向链表头插入一个数;(2)删除第k个插入的数后面的数;(3)在第k个插入的数后插入一个数现在要对该链表进行M次操作,进行完所有操作后
不想睡觉_
·
2024-02-07 17:33
数据结构
链表
算法
c++
AcWing
4956. 冶炼金属
4956.冶炼金属-
AcWing
题库思路:可以冶炼出b个金属,说明b大于等于a乘上转化率,b+1小于a乘上转化率,转化率就在(b+1)/a和b/a之间,左开右闭,因为b是一个整数,根据生活经验,算出来的数据要进行下取整
wsh1c6
·
2024-02-07 17:19
acwing
算法
c++
数据结构
最小生成树刷题汇总
Acwing
346走廊泼水节给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树。求增加的边的权值总和最小是多少。
徒手装机甲
·
2024-02-07 12:32
其他补题
图论
最小生成树个数
今天练习最小生成树时做到这样一个题1150.最小生成树计数-
AcWing
题库一个很裸的求最小生成树个数的题,搜题解发现矩阵树来求解很好,关于图论的结论一般证明都非常麻烦,而且我觉得会用就好,这里附上大佬的证明
兔猪猪兔
·
2024-02-07 12:31
矩阵
算法
矩阵树
最小生成树计数
最小生成树练习(最短路径练习1)
P1339[USACO09OCT]HeatWaveG-洛谷|计算机科学教育新生态(luogu.com.cn)题解:
模板题
了,算是迪杰斯特拉的,我直接上版子,虽然很多时候我也想多对一个算法思考一会,可最近真的是在赶进度吧
钟一淼
·
2024-02-07 12:00
淼淼的图论
淼淼的算法之路
算法
c++
图论
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他