算法题
文章平均质量分 87
cout丶shy
这个作者很懒,什么都没留下…
展开
-
【力扣】设计内存分配器(高效实现)
释放时,遍历对应链表,将链表上的内存块依次放回freeSet中,但注意每放回一块内存块时,还需要检查该内存块在freeSet左右是否有相连的内存块,有的话需要合并,好在set提供的迭代器能在O(1)时间找到相邻内存块。int free(int mID) 释放 id mID 对应的所有内存单元。给你一个整数 n ,表示下标从 0 开始的内存数组的大小。你必须释放 mID 对应的所有内存单元,即便这些内存单元被分配在不同的块中。当分配一块大小为n,id为mID的内存块时,就把该内存块添加到对应链表上。原创 2023-07-06 21:32:36 · 334 阅读 · 0 评论 -
【力扣周赛第305场】全题题解
这次周赛四题都出的比较简单,一道构建与遍历图和三道线性动规的题。原创 2022-08-07 22:37:03 · 445 阅读 · 0 评论 -
【洛谷-图论】P1807 最长路
题目描述设 GGG 为有 nnn 个顶点的带权有向无环图,GGG 中各顶点的编号为 111 到 nnn,请设计算法,计算图 GGG 中 <1,n>\lt1,n\gt<1,n> 间的最 长路径。输入输出格式输入格式输入的第一行有两个整数,分别代表图的点数 nnn 和边数 mmm。第 222 到第 (m+1)(m + 1)(m+1) 行,每行 333 个整数 u,v,wu, v, wu,v,w,代表存在一条从 uuu 到 vvv 边权为 www 的边。输出格式输出一行一个整原创 2020-11-04 16:16:54 · 622 阅读 · 0 评论 -
【洛谷-拓扑排序】P4017 最大食物链计数
题目背景你知道食物链吗?Delia 生物考试的时候,数食物链条数的题目全都错了,因为她总是重复数了几条或漏掉了几条。于是她来就来求助你,然而你也不会啊!写一个程序来帮帮她吧。题目描述给你一个食物网,你要求出这个食物网中最大食物链的数量。(这里的“最大食物链”,指的是生物学意义上的食物链,即最左端是不会捕食其他生物的生产者,最右端是不会被其他生物捕食的消费者。)Delia 非常急,所以你只有 111 秒的时间。由于这个结果可能过大,你只需要输出总数模上 8011200280112002801120原创 2020-11-02 15:08:35 · 280 阅读 · 0 评论 -
【洛谷-贪心、递推】P5019 铺设道路
题目描述春春是一名道路工程师,负责铺设一条长度为 nnn 的道路。铺设道路的主要工作是填平下陷的地表。整段道路可以看作是 nnn 块首尾相连的区域,一开始,第 iii 块区域下陷的深度为 did_idi 。春春每天可以选择一段连续区间[L,R][L,R][L,R] ,填充这段区间中的每块区域,让其下陷深度减少 111。在选择区间时,需要保证,区间内的 每块区域在填充前下陷深度均不为 000 。春春希望你能帮他设计一种方案,可以在最短的时间内将整段道路的下陷深度都变为 000 。输入输出格式输入原创 2020-10-15 17:37:35 · 158 阅读 · 0 评论 -
【洛谷-分治】P1908 逆序对
题目描述猫猫 TOM 和小老鼠 JERRY 最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM 老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中 ai>aja_i \gt a_jai>aj 且 i<ji \lt ji<j 的有序对。知道这概念后,他们就比赛谁先算出给定的一段正整数序列中逆序对的数目。注意序列中可能有重复数字。Update:数据已加强。输入输出格式原创 2020-10-13 10:41:14 · 293 阅读 · 0 评论 -
【洛谷-递推】P1036 选数
题目描述已知 nnn 个整数 x1,x2,…,xnx_1,x_2,…,x_nx1,x2,…,xn,以及111个整数kkk(KaTeX parse error: Expected 'EOF', got '&' at position 2: k&̲lt;n)。从nnn个整数中任选kkk个整数相加,可分别得到一系列的和。例如当n=4,k=3n=4,k=3n=4,k=3,444个整数分别为3,7,12,193,7,12,193,7,12,19时,可得全部的组合与它们的和为:3+7+12=2原创 2020-10-12 10:50:12 · 128 阅读 · 0 评论 -
【洛谷习题】P5318 【深基18.例3】查找文献
题目描述小K 喜欢翻看洛谷博客获取知识。每篇文章可能会有若干个(也有可能没有)参考文献的链接指向别的博客文章。小K 求知欲旺盛,如果他看了某篇文章,那么他一定会去看这篇文章的参考文献(如果他之前已经看过这篇参考文献的话就不用再看它了)。假设洛谷博客里面一共有 n(n<10510^5105) 篇文章(编号为 1 到 n)以及 m(m<10610^6106)条参考文献引用关系。目前小 K 已经打开了编号为 1 的一篇文章,请帮助小 K 设计一种方法,使小 K 可以不重复、不遗漏的看完所有他能看到原创 2020-09-16 18:43:57 · 673 阅读 · 0 评论 -
【洛谷习题】P1093 奖学金
题目描述某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学 排在前面,这样,每个学生的排序是唯一确定的。任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答原创 2020-08-07 21:27:03 · 606 阅读 · 0 评论 -
【洛谷习题】P1923 【深基9.例4】求第k小的数
题目描述输入 n(n<5000000 且 n 为奇数) 个数字 a_i(0<a_i<10^9) 输出这些数字的第 k 小的数。最小的数是第 0 小。输入格式无输出格式无输入输出样例输入5 14 3 2 1 5输出2思路与解法看到这题首先想到的是用快排排序,然后输出第k个元素即可,但是算了下时间,快排的时间复杂度是O(nlogn),带入5000000大约为1.11*10^8,刚好会超时(不过用O2能过),所以还需要再优化。目的是找到第k小的数,所以对所有数排序,显原创 2020-08-06 22:43:53 · 1406 阅读 · 0 评论 -
【洛谷习题】P1255 数楼梯
题目描述楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶。编一个程序,计算共有多少种不同的走法。输入格式一个数字,楼梯数。输出格式走的方式几种。输入样例4输出样例5说明/提示60% N<=50100% N<=5000)思路与解法根据题意会发现,到每阶楼梯的走法数量和斐波那契数列很相像,都是f[i] = f[i-2]+f[i-1],但基准情况有点不同,先总结出该题公式于是完全按公式写出一个解法#include<iostream>using nam原创 2020-07-06 17:38:45 · 750 阅读 · 0 评论 -
蓝桥杯11届B组H题-走方格
题目问题描述 在平面上有一些二维的点阵. 这些点的编号就像二维数组的编号一样,从上到下依次为第1至第n行。从左到右依次为第1至第m列,每一个点可以用行号和列号来表示。 现在有个人站在第1行第1列,要走到第n行第m列。只能向右或者向下走。 注意,如果行号和列号都是偶数,不能走入这一格中。 问有多少种方案。输入格式输入一行包含两个整数n,m。输出格式输出一个整数,表示答案。样例输入3 4样例输出2思路看见走方格的题,首先就想到了用dfs或bfs来解决,但是该题并不是求最原创 2020-07-05 15:40:49 · 593 阅读 · 0 评论 -
用对数器测试算法是否正确
float xn,xm; //到达边缘前,每段走的n和m int yun,yum; //剩余距离 int ixn,ixm;bool lowd(float n,float m,float d){ return n*n+m*m <= d*d;}int func1(int n,int m,int d){ n--;m--; int t = 0; int r = 0,c = 0; //小明的坐标 xn = d/sqrt(n*原创 2020-05-08 16:23:43 · 231 阅读 · 0 评论 -
动规习题-间隔选数求最大和
题目现有一个含有n个正整数的数列,从中选择任意个数,但选了第i个数,就不能选第i-1和第i+1的数,求选择的数的最大和。输入第一行为一个n,表示数的个数,第二行为n个数表示数列输出选数最大和。样例输入:54 1 1 9 1样例输出:13思路先根据题意想递推式,从左到右遍历,每一个数都有选与不选两个选项,那么求前i个数的最大选数和opt(i),可以分为选第i个数和不选,如果选了,...原创 2020-05-08 16:06:08 · 820 阅读 · 0 评论 -
十一届蓝桥杯省模拟赛第十题(淹没城堡)
题目有一片长n宽m的地方,上面有n个方块,该地图是立体的,所以方块可以叠加,地图数值代表在该坐标下有叠加的方块个数,现在有高h的水要淹没这片地方,请输出从水高度为1~h,被淹没的方块个数分别为多少。样例输入输入第一行为n和m,表示地图长和宽,然后是n行,每行m个数表示方块个数,最后一行输入一个h表示水的最高高度。3 49 3 3 13 3 3 00 0 0 010样例输出71...原创 2020-04-21 19:14:07 · 350 阅读 · 0 评论