acwing刷题
cxposition
think more
展开
-
经典DSF问题
acwing-842. 排列数字题目描述:给定一个整数 n ,将数字 1∼n 排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。输入格式共一行,包含一个整数 n。输出格式按字典序输出所有排列方案,每个方案占一行。数据范围1≤n≤7输入样例:3输出样例:1 2 31 3 22 1 32 3 13 1 23 2 1题解代码如下#include<bits/stdc++.h>using namespace std;const int N原创 2021-11-25 15:54:37 · 234 阅读 · 0 评论 -
acwing-835.Trie字符串统计
题目描述:维护一个字符串集合,支持两种操作:I x 向集合中插入一个字符串 x;Q x 询问一个字符串在集合中出现了多少次。共有 N 个操作,输入的字符串总长度不超过 105,字符串仅包含小写英文字母。输入格式第一行包含整数 N,表示操作数。接下来 N 行,每行包含一个操作指令,指令为 I x 或 Q x 中的一种。输出格式对于每个询问指令 Q x,都要输出一个整数作为结果,表示 x 在集合中出现的次数。每个结果占一行。数据范围1≤N≤2∗10^4输入样例5I abcQ ab原创 2021-06-14 18:07:07 · 110 阅读 · 0 评论 -
acwing.3578-最大中位数(acwing第一场周赛第2题)
给定一个由 n 个整数组成的数组 a,其中 n 为奇数。你可以对其进行以下操作:选择数组中的一个元素(例如 ai),将其增加 1(即,将其替换为 ai+1)。你最多可以进行 k 次操作,并希望该数组的中位数能够尽可能大。奇数长度的数组的中位数是数组以非降序排序后的中间元素。例如,数组 [1,5,2,3,5] 的中位数为 3。输入格式第一行包含两个整数 n 和 k。第二行包含 n 个整数 a1,a2,…,an。输出格式输出一个整数,表示通过操作可能得到的最大中位数。数据范围对于 30%原创 2021-06-02 11:30:07 · 419 阅读 · 0 评论 -
acwing-849dijkstra朴素版(链式前向星)
Dijkstra求最短路 I题目描述给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为正值。请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 −1。输入格式第一行包含整数 n 和 m。接下来 m 行每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。输出格式输出一个整数,表示 1 号点到 n 号点的最短距离。如果路径不存在,则输出 −1。数据范围1≤n≤500,1≤m≤105,图中涉及边长均原创 2021-05-29 14:20:23 · 219 阅读 · 0 评论 -
acwing-861.二分图最大匹配(匈牙利算法)
题目描述给定一个二分图,其中左半部包含 n1 个点(编号 1∼n1),右半部包含 n2 个点(编号 1∼n2),二分图共包含 m 条边。数据保证任意一条边的两个端点都不可能在同一部分中。请你求出二分图的最大匹配数。二分图的匹配:给定一个二分图 G,在 G 的一个子图 M 中,M 的边集 {E} 中的任意两条边都不依附于同一个顶点,则称 M 是一个匹配。二分图的最大匹配:所有匹配中包含边数最多的一组匹配被称为二分图的最大匹配,其边数即为最大匹配数输入格式第一行包含三个整数 n1、 n2 和 m。原创 2021-05-28 14:32:48 · 251 阅读 · 0 评论 -
acwing-843.n-皇后问题
题目描述n−皇后问题是指将 n 个皇后放在 n×n 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。 现在给定整数 n,请你输出所有的满足条件的棋子摆法。输入格式共一行,包含整数 n。输出格式每个解决方案占 n 行,每行输出一个长度为 n 的字符串,用来表示完整的棋盘状态。其中 . 表示某一个位置的方格状态为空,Q 表示某一个位置的方格上摆着皇后。每个方案输出完成后,输出一个空行。注意:行末不能有多余空格。输出方案的顺序任意,只要不重复且没有原创 2021-05-02 13:58:43 · 1409 阅读 · 0 评论 -
acwing-841.字符串哈希
题目描述给定一个长度为 n 的字符串,再给定 m 个询问,每个询问包含四个整数 l1,r1,l2,r2,请你判断 [l1,r1] 和 [l2,r2] 这两个区间所包含的字符串子串是否完全相同。字符串中只包含大小写英文字母和数字。输入格式第一行包含整数 n 和 m,表示字符串长度和询问次数。第二行包含一个长度为 n 的字符串,字符串中只包含大小写英文字母和数字。接下来 m 行,每行包含四个整数 l1,r1,l2,r2,表示一次询问所涉及的两个区间。注意,字符串的位置从 1 开始编号。输出格式原创 2021-04-19 14:28:56 · 415 阅读 · 0 评论 -
acwing-837.连同块中点的数量
题目描述给定一个包含 n 个点(编号为 1∼n)的无向图,初始时图中没有边。现在要进行 m个操作,操作共有三种:C a b,在点 a 和点 b 之间连一条边,a 和 b可能相等;Q1 a b,询问点 a和点 b 是否在同一个连通块中,a 和 b可能相等;Q2 a,询问点 a所在连通块中点的数量;输入格式第一行输入整数 n 和 m。接下来 m行,每行包含一个操作指令,指令为 C a b,Q1 a b 或 Q2 a 中的一种。输出格式对于每个询问指令 Q1 a b,如果 a和 b在原创 2021-04-16 15:29:48 · 105 阅读 · 0 评论 -
acwing-797,798.差分,差分矩阵
一:差分题目描述输入一个长度为 n的整数序列。接下来输入 m个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。请你输出进行完所有操作后的序列。输入格式第一行包含两个整数 n 和 m。第二行包含 n个整数,表示整数序列。接下来 m行,每行包含三个整数 l,r,c,表示一个操作。输出格式共一行,包含 n 个整数,表示最终序列。数据范围1≤n,m≤100000,1≤l≤r≤n,−1000≤c≤1000,−1000≤整数序列中元素的值≤1000原创 2021-04-14 11:44:02 · 189 阅读 · 0 评论 -
acwing-803. 区间合并
题目描述给定 n 个区间 [li,ri],要求合并所有有交集的区间。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。例如:[1,3]和 [2,6] 可以合并为一个区间 [1,6]。输入格式第一行包含整数 n。接下来 n行,每行包含两个整数 l 和 r。输出格式共一行,包含一个整数,表示合并区间完成后的区间个数。数据范围1≤n≤100000,−109≤li≤ri≤109输入样例51 22 45 67 87 9输出样例3题解代码#include&l原创 2021-04-12 14:52:42 · 117 阅读 · 0 评论 -
acwing-789.数的范围
题目描述给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数)。如果数组中不存在该元素,则返回 -1 -1。输入格式第一行包含整数 n 和 q,表示数组长度和询问个数。第二行包含 n 个整数(均在 1∼10000 范围内),表示完整数组。接下来 q 行,每行包含一个整数 k,表示一个询问元素。输出格式共 q 行,每行包含两个整数,表示所求元素的起始位置和终止位置。如果数组中不存在该元素,则返回 -1 -原创 2021-04-10 00:14:06 · 94 阅读 · 0 评论 -
acwing-802.区间和(离散化,整数二分,前缀和)
题目描述假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c。接下来,进行 m 次询问,每个询问包含两个整数 l 和 r,你需要求出在区间 [l,r] 之间的所有数的和。输入格式第一行包含两个整数 n 和 m。接下来 n 行,每行包含两个整数 x 和 c。再接下来 m 行,每行包含两个整数 l 和 r。输出格式共 m 行,每行输出一个询问中所求的区间内数字和。数据范围−109≤x≤109 ,1≤n,m≤105,−原创 2021-04-07 17:53:30 · 273 阅读 · 0 评论 -
acwing-3302.表达式求值(中缀)
题目描述给定一个表达式,其中运算符仅包含 +,-,*,/(加 减 乘 整除),可能包含括号,请你求出表达式的最终值。注意:数据保证给定的表达式合法。题目保证符号 - 只作为减号出现,不会作为负号出现,例如,-1+2,(2+2)*(-(1+1)+2) 之类表达式均不会出现。题目保证表达式中所有数字均为正整数。题目保证表达式在中间计算过程以及结果中,均不超过 231−1题目中的整除是指向 0取整,也就是说对于大于 0 的结果向下取整,例如 5/3=1,对于小于 0 的结果向上取整,例如 5/(原创 2021-04-04 18:06:33 · 223 阅读 · 1 评论 -
acwing-852.spfa判负环
题目链接 acwing-851.spfa判负环题目描述:给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数。请你判断图中是否存在负权回路。输入格式第一行包含整数n和m。接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。输出格式如果图中存在负权回路,则输出“Yes”,否则输出“No”。数据范围1≤n≤2000 ,1≤m≤10000,图中涉及边长绝对值均不超过10000。输入样例:3 31 2 -12 3 43 1 -4输出原创 2021-02-25 15:12:38 · 95 阅读 · 0 评论 -
acwing-851.spfa求最短路(链式前向星存储邻接矩阵)
题目描述给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出impossible。数据保证不存在负权回路。输入格式第一行包含整数n和m。接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z输出格式输出一个整数,表示1号点到n号点的最短距离。如果路径不存在,则输出”impossible”。数据范围1≤n,m≤105 ,图中涉及边长绝对值均不超过10000。输入样例:3原创 2021-02-24 10:50:53 · 129 阅读 · 0 评论 -
acwing-850.Dijkstra求最短路(堆优化的Dijkstra板子题)
题目描述给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为非负值。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1。输入格式第一行包含整数n和m。接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。输出格式输出一个整数,表示1号点到n号点的最短距离。如果路径不存在,则输出-1。数据范围1≤n,m≤1.5×105图中涉及边长均不小于0,且不超过10000。输入样例:3 31 2 22 3 11 3 4输出样原创 2021-02-23 23:04:36 · 112 阅读 · 0 评论 -
acwing-905区间选点(区间贪心问题)
题目描述给定N个闭区间[ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。输出选择的点的最小数量。位于区间端点上的点也算作区间内。输入格式第一行包含整数N,表示区间数。接下来N行,每行包含两个整数ai,bi,表示一个区间的两个端点。输出格式输出一个整数,表示所需的点的最小数量数据范围1≤N≤105 ,−1e9≤ai≤bi≤1e9输入样例3-1 12 43 5输出样例2#include <bits/stdc++.h>using n原创 2021-02-10 10:53:27 · 137 阅读 · 0 评论 -
acwing-854.Floyd求最短路
题目描述给定一个n个点m条边的有向图,图中可能存在重边和自环,边权可能为负数。再给定k个询问,每个询问包含两个整数x和y,表示查询从点x到点y的最短距离,如果路径不存在,则输出“impossible”。数据保证图中不存在负权回路。输入格式第一行包含三个整数n,m,k接下来m行,每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。接下来k行,每行包含两个整数x,y,表示询问点x到点y的最短距离。输出格式共k行,每行输出一个整数,表示询问的结果,若询问两点间不存在路径,则输原创 2021-02-19 02:14:15 · 122 阅读 · 0 评论 -
acwing-853.有边数限制的最短路(bellman-ford算法)
题目描述给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数。请你求出从1号点到n号点的最多经过k条边的最短距离,如果无法从1号点走到n号点,输出impossible。注意:图中可能 存在负权回路 。输入格式第一行包含三个整数n,m,k。接下来m行,每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。输出格式:输出一个整数,表示从1号点到n号点的最多经过k条边的最短距离。如果不存在满足条件的路径,则输出“impossible”。数据范围:1≤n,k原创 2021-02-22 14:37:12 · 160 阅读 · 0 评论 -
acwing-826单链表(数组模拟链表)
题目描述实现一个单链表,链表初始为空,支持三种操作:(1) 向链表头插入一个数;(2) 删除第k个插入的数后面的数;(3) 在第k个插入的数后插入一个数现在要对该链表进行M次操作,进行完所有操作后,从头到尾输出整个链表。注意 题目中第k个插入的数并不是指当前链表的第k个数。例如操作过程中一共插入了n个数,则按照插入的时间顺序,这n个数依次为:第1个插入的数,第2个插入的数,…第n个插入的数。输入格式第一行包含整数M,表示操作次数。接下来M行,每行包含一个操作命令,操作命令可能为以下几种:原创 2021-02-23 11:04:35 · 144 阅读 · 0 评论