数据结构与算法题解总集
该专栏主要为数据结构与算法题解总集
博主的另一个算法博客地址:https://zhumenger.top/
逐梦er
ACM铜牌退役狗、机器学习炼丹师、懒癌晚期患者
展开
-
美团笔试题——最优二叉树II
题目描述小团有一个由N个节点组成的二叉树,每个节点有一个权值。定义二叉树每条边的开销为其两端节点权值的乘积,二叉树的总开销即每条边的开销之和。小团按照二叉树的中序遍历依次记录下每个节点的权值,即他记录下了N个数,第i个数表示位于中序遍历第i个位置的节点的权值。之后由于某种原因,小团遗忘了二叉树的具体结构。在所有可能的二叉树中,总开销最小的二叉树被称为最优二叉树。现在,小团请小美求出最优二叉树的总开销。输入描述:第一行输入一个整数N(1<=N<=300),表示二叉树的节点数。第二行输入N原创 2021-03-29 17:45:46 · 3801 阅读 · 2 评论 -
美团笔试题——公司食堂
题目描述小美和小团所在公司的食堂有N张餐桌,从左到右摆成一排,每张餐桌有2张餐椅供至多2人用餐,公司职员排队进入食堂用餐。小美发现职员用餐的一个规律并告诉小团:当男职员进入食堂时,他会优先选择已经坐有1人的餐桌用餐,只有当每张餐桌要么空着要么坐满2人时,他才会考虑空着的餐桌;当女职员进入食堂时,她会优先选择未坐人的餐桌用餐,只有当每张餐桌都坐有至少1人时,她才会考虑已经坐有1人的餐桌;无论男女,当有多张餐桌供职员选择时,他会选择最靠左的餐桌用餐。现在食堂内已有若干人在用餐,另外M个人正排队进入食堂,小原创 2021-03-29 17:12:19 · 1865 阅读 · 1 评论 -
美团笔试题——正则序列
题目描述我们称一个长度为n的序列为正则序列,当且仅当该序列是一个由1~n组成的排列,即该序列由n个正整数组成,取值在[1,n]范围,且不存在重复的数,同时正则序列不要求排序有一天小团得到了一个长度为n的任意序列,他需要在有限次操作内,将这个序列变成一个正则序列,每次操作他可以任选序列中的一个数字,并将该数字加一或者减一。请问他最少用多少次操作可以把这个序列变成正则序列?输入描述:输入第一行仅包含一个正整数n,表示任意序列的长度。(1<=n<=20000)输入第二行包含n个整数,表示原创 2021-03-29 17:04:57 · 1695 阅读 · 0 评论 -
美团笔试题——淘汰分数
题目描述某比赛已经进入了淘汰赛阶段,已知共有n名选手参与了此阶段比赛,他们的得分分别是a_1,a_2….a_n,小美作为比赛的裁判希望设定一个分数线m,使得所有分数大于m的选手晋级,其他人淘汰。但是为了保护粉丝脆弱的心脏,小美希望晋级和淘汰的人数均在[x,y]之间。显然这个m有可能是不存在的,也有可能存在多个m,如果不存在,请你输出-1,如果存在多个,请你输出符合条件的最低的分数线。输入描述:输入第一行仅包含三个正整数n,x,y,分别表示参赛的人数和晋级淘汰人数区间。(1<=n<=5原创 2021-03-29 16:52:24 · 1555 阅读 · 0 评论 -
火车进出栈问题(高精度+压位+质因数分解消除除法)
题目描述一列火车n节车厢,依次编号为1,2,3,…,n。每节车厢有两种运动方式,进栈与出栈,问n节车厢出栈的可能排列方式有多少种。输入格式输入一个整数n,代表火车的车厢数。输出格式输出一个整数s表示n节车厢出栈的可能排列方式数量。数据范围1≤n≤60000输入样例:3输出样例:5题解:本题需要输出合法的方案个数,可以将进站看做是+, 出站看做是-,总共有2 * n 个位置...原创 2019-05-23 10:33:50 · 1704 阅读 · 0 评论 -
高精度除法
题目描述给定两个正整数A,B,请你计算 A / B的商和余数。输入格式共两行,第一行包含整数A,第二行包含整数B。输出格式共两行,第一行输出所求的商,第二行输出所求余数。数据范围1≤A的长度≤1000000,1≤B≤10000输入样例:72输出样例:31用数组的方法,代码如下:#include<iostream>#include...原创 2019-05-18 23:15:54 · 1566 阅读 · 0 评论 -
国王游戏(贪心 + 高精度乘法 + 高精度除法 + 高精度比较大小)
题目描述恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 n 位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。国王不希望某一个大臣获...原创 2019-05-18 00:15:04 · 1922 阅读 · 0 评论 -
数组模拟乘法(大数乘法)
A * B ProblemInputEach line contain two integers A and B. Procss to end of file.(EOF)OutputFor each case, Please output the value of A multiply BSample Input 13 21 5Sample Output 165思路:用小学...原创 2018-12-05 10:46:36 · 3794 阅读 · 1 评论 -
大数减法
A - B problemDescriptionNow, Give you two intgers AAA and BBB , Please calculate the value of AAA minus BBB.Attation: AAA、BBBand A−BA-BA−B are all non-negative numbers.InputEach line will contain...原创 2018-12-02 21:14:07 · 1634 阅读 · 0 评论 -
数组模拟加法(每日一练 11.30)
A + B problemDescriptionCalculate A + B.InputEach line will contain two integers A and B. Process to end of file. (EOF)OutputFor each case, output A + B in one line.Sample Input 12 34 5Sampl...原创 2018-12-01 17:33:12 · 1952 阅读 · 0 评论 -
M - Corporate Identity(多组字符串匹配问题)
题目描述Beside other services, ACM helps companies to clearly state their “corporate identity”, which includes company logo but also other signs, like trademarks. One of such companies is Internet Buildi...原创 2019-05-04 17:08:31 · 1451 阅读 · 0 评论 -
周期(KMP算法之Next数组的性质)
题目描述一个字符串的前缀是从第一个字符开始的连续若干个字符,例如”abaab”共有5个前缀,分别是a, ab, aba, abaa, abaab。我们希望知道一个N位字符串S的前缀是否具有循环节。换言之,对于每一个从头开始的长度为 i (i>1)的前缀,是否由重复出现的子串A组成,即 AAA…A (A重复出现K次,K>1)。如果存在,请找出最短的循环节对应的K值(也就是这个前缀...原创 2019-05-04 16:49:40 · 1741 阅读 · 0 评论 -
落谷 P3375 【模板】KMP字符串匹配
题目描述如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置。为了减少骗分的情况,接下来还要输出子串的前缀数组next。输入格式:第一行为一个字符串,即为s1第二行为一个字符串,即为s2输出格式:若干行,每行包含一个整数,表示s2在s1中出现的位置接下来1行,包括length(s2)个整数,表示前缀数组next[i]的值。输入样例:...原创 2019-05-03 08:45:26 · 1327 阅读 · 0 评论 -
食物链(扩展域并查集)
题目描述动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这N个动物所构成的食物链关系进行描述:第一种说法是”1 X Y”,表示X和Y是同类。第二种说法是”2 X Y”,表示X吃Y。此人对N个动物,用上述两种说法,一句接一句地说出K...原创 2019-05-03 09:06:28 · 1541 阅读 · 0 评论 -
畅通工程(最小生成树模板)
题目描述给出无向图中M个节点间N条边的权值。求一个使得所有点连通的子图,要求图内的边权和最小Input测试输入包含若干测试用例每个测试用例的第1行包含N、M ( <100 )随后的 N 行每行包含3个数,边的起点,终点,权值节点从1到M编号当N为0时,全部测试结束.Output对每个测试用例,在1行里输出最小生成树权值。若不存在符合要求的子图,则输出“?”。S...原创 2019-05-01 14:58:02 · 1501 阅读 · 0 评论 -
B - 小希的迷宫 (并查集判断是否存在环)
题目描述上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头路)。小希现在把她的设计图给你,让你帮...原创 2019-04-30 20:19:00 · 1443 阅读 · 0 评论 -
A - Cube Stacking(带权并查集)
题目描述Farmer John and Betsy are playing a game with N (1 <= N <= 30,000)identical cubes labeled 1 through N. They start with N stacks, each containing a single cube. Farmer John asks Betsy to per...原创 2019-04-29 23:23:09 · 1329 阅读 · 0 评论 -
畅通工程——并查集
Problem Description某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目...原创 2019-03-31 16:56:32 · 1328 阅读 · 0 评论 -
L - Oil Deposits
题目描述The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divid...原创 2019-04-17 23:07:41 · 1255 阅读 · 0 评论 -
K - 迷宫问题
题目描述定义一个二维数组:int maze[5][5] = {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。Input一个5 × 5的二维数组...原创 2019-04-17 23:03:34 · 1757 阅读 · 0 评论 -
F - Prime Path
题目描述The ministers of the cabinet were quite upset by the message from the Chief of Security stating that they would all have to change the four-digit room numbers on their offices.— It is a matter o...原创 2019-04-17 23:02:08 · 1303 阅读 · 0 评论 -
D - Fliptile
题目描述Farmer John knows that an intellectually satisfied cow is a happy cow who will give more milk. He has arranged a brainy activity for cows in which they manipulate an M × N grid (1 ≤ M ≤ 15; 1 ≤ N...原创 2019-04-17 23:00:48 · 1248 阅读 · 0 评论 -
C - Catch That Cow
题目描述Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ ...原创 2019-04-17 22:59:18 · 1272 阅读 · 0 评论 -
B - Dungeon Master
题目描述You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of unit cubes which may or may not be filled with rock. It takes one minute to move one unit north,...原创 2019-04-17 22:03:59 · 1244 阅读 · 0 评论 -
A - 棋盘问题
题目描述在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <...原创 2019-04-17 21:56:16 · 1287 阅读 · 0 评论 -
约数之和
题目描述假设现在有两个自然数A和B,S是A B的所有约数之和。请你求出S mod 9901的值是多少。输入格式在一行中输入用空格隔开的两个整数A和B。输出格式输出一个整数,代表S mod 9901的值。数据范围0 ≤ A,B ≤ 5×10 ^ 7输入样例:2 3输出样例:15注意: A和B不会同时为0。题解:公式推导:第一步,质因数分解:由算...原创 2019-04-15 21:59:24 · 2893 阅读 · 0 评论 -
奇怪的汉诺塔
题目描述汉诺塔问题,条件如下:1、这里有A、B、C和D四座塔。2、这里有n个圆盘,n的数量是恒定的。3、每个圆盘的尺寸都不相同。4、所有的圆盘在开始时都堆叠在塔A上,且圆盘尺寸从塔顶到塔底逐渐增大。5、我们需要将所有的圆盘都从塔A转移到塔D上。6、每次可以移动一个圆盘,当塔为空塔或者塔顶圆盘尺寸大于被移动圆盘时,可将圆盘移至这座塔上。请你求出将所有圆盘从塔A移动到塔D,所需的最小移...原创 2019-04-15 21:35:29 · 1415 阅读 · 0 评论 -
最长回文(Manacher算法模板)
题目描述给出一个只由小写英文字符a,b,c…y,z组成的字符串S,求S中最长回文串的长度.回文就是正反读都是一样的字符串,如aba, abba等Input输入有多组case,不超过120组,每组输入为一行小写英文字符a,b,c…y,z组成的字符串S两组case之间由空行隔开(该空行不用处理)字符串长度len <= 110000Output每一行一个整数x,对应一组c...原创 2019-05-03 22:51:53 · 1387 阅读 · 0 评论 -
P1022 计算器的改良
题目背景NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能。实验室将这个任务交给了一个刚进入的新手ZL先生。题目描述为了很好的完成这个任务,ZL先生首先研究了一些一元一次方程的实例:4+3x=86a-5+1=2-2a-5+12y=0ZL先生被主管告之,在计算器上键入的一个一元一次方程中,只包含整...原创 2019-04-04 00:02:19 · 1239 阅读 · 0 评论 -
洛谷P1015回文数
题目描述若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。例如:给定一个十进制数56,将56加65(即把5656从右向左读),得到121是一个回文数。又如:对于十进制数8787:STEP1:87+78 = 165STEP2:165+561 = 726STEP3:726+627 = 1353STEP4:1353+3531 = 4884在这里的一步是指进行了一...原创 2019-04-03 22:27:25 · 1441 阅读 · 0 评论 -
I - Arbitrage(判断是否有无正环 II)
题目描述Arbitrage is the use of discrepancies in currency exchange rates to transform one unit of a currency into more than one unit of the same currency. For example, suppose that 1 US Dollar buys 0.5 B...原创 2019-04-22 18:03:54 · 1400 阅读 · 0 评论 -
H - Cow Contest(floyd的传递闭包性)
题目描述N (1 ≤ N ≤ 100) cows, conveniently numbered 1…N, are participating in a programming contest. As we all know, some cows code better than others. Each cow has a certain constant skill rating that i...原创 2019-04-22 16:02:01 · 1325 阅读 · 0 评论 -
F - Wormholes(判断是否存在负环)
##题目描述While exploring his many farms, Farmer John has discovered a number of amazing wormholes. A wormhole is very peculiar because it is a one-way path that delivers you to its destination at a time...原创 2019-04-22 13:31:04 · 1390 阅读 · 0 评论 -
Currency Exchange(判断有无正环)
题目描述Several currency exchange points are working in our city. Let us suppose that each point specializes in two particular currencies and performs exchange operations only with these currencies. Ther...原创 2019-04-20 09:56:19 · 1345 阅读 · 0 评论 -
B - Frogger(最短路之多条最短路径中最大权值的最小值)
题目描述Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Frog who is sitting on another stone. He plans to visit her, but since the water is dirty and full of tourists...原创 2019-04-19 23:21:05 · 1570 阅读 · 0 评论 -
C - Heavy Transportation (最短路问题之求多条最短路径中最小权值的最大值)
BackgroundHugo Heavy is happy. After the breakdown of the Cargolifter project he can now expand business. But he needs a clever man who tells him whether there really is a way from the place his cust...原创 2019-04-19 23:12:17 · 1774 阅读 · 0 评论 -
最短路径问题——算法总集(待完善)
Problem Description某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。Input本题目包含多组数据,请处理到文件结束。每组数据第一行包含两个正整数N和M(0...原创 2019-03-26 00:02:14 · 3101 阅读 · 1 评论 -
【基础数论】欧拉函数
欧拉函数欧拉函数就是指:对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n) 。欧拉函数的通式:φ(n)=n*(1-1/p1)(1-1/p2)(1-1/p3)*(1-1/p4)……(1-1/pn),其中p1, p2……pn为n的所有质因数,n是不为0的整数。φ(1)=1(唯一和1互质的数就是1本身)。对于上述的通式一定要牢记在心,因为这是计算欧拉函数最重要的一步废话少说...原创 2019-03-22 21:12:38 · 1745 阅读 · 0 评论 -
[蓝桥杯][2017年第八届真题]对局匹配
题目描述小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分,代表他的围棋水平。小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配在一起。如果两人分差小于或大于K,系统都不会将他们匹配。现在小明知道这个网站总共有N名用户,以及他们的积分分别是A1, A2, … AN。小明想了解最多可能有多少名用户同时在线寻找对手,但是系统却一场对局都匹配不起来...原创 2019-05-23 21:35:42 · 1510 阅读 · 0 评论 -
2019 蓝桥杯省赛 B 组模拟赛(一) J. 程序设计:蒜厂年会 环形连续子序列求和问题
题目描述在蒜厂年会上有一个抽奖,在一个环形的桌子上,有 n 个纸团,每个纸团上写一个数字,表示你可以获得多少蒜币。但是这个游戏比较坑,里面竟然有负数,表示你要支付多少蒜币。因为这些数字都是可见的,所以大家都是不会出现的赔的情况。游戏规则:每人只能抓一次,只能抓取一段连续的纸团,所有纸团上的数字和就是你可以获得的蒜币。蒜头君作为蒜厂的一员在想,我怎么可以获得最多的蒜币呢?最多能获取多少蒜币呢...原创 2019-03-18 22:49:37 · 2052 阅读 · 0 评论