![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
阿白|
别让那些把自己爽到热血沸腾的白日梦只在脑子里发生
展开
-
Piotr`s Ants
一根长度为L厘米的木棍上有n只蚂蚁,每只蚂蚁要么朝左爬,要么朝右爬,速度为1cm/s。当两只蚂蚁相遇时,两者同时调头,如果蚂蚁爬超出木棍两端则掉下。给出每只蚂蚁初始的位置和朝向,计算T秒之后每只蚂蚁的位置。......原创 2022-07-28 22:56:34 · 213 阅读 · 0 评论 -
浅浅梳理一下双轴快排(DualPivotQuickSort)
双轴快排(DualPivotQuickSort)的简单梳理,如果有错误,希望能帮忙指正原创 2022-07-23 23:33:05 · 660 阅读 · 1 评论 -
蓝桥:合根植物
蓝桥:合根植物原创 2022-07-03 15:24:33 · 96 阅读 · 0 评论 -
堆排序算法和基于其思路的“超大数据寻找排名前k”问题的解决办法
最近封校封的闷得难受,便在食堂坐了一下午,,,本来是想好好写高数的,结果突然想到了自己没总结完的堆的使用---前k名问题,便连复习带补充的用演草纸写了一份,,,存在这里供大家参考吧。可能在写的过程中有不严谨的地方,如果大家发现,还望不客气的批评指正,感谢!(跪)写的有点快,字比较丑,见谅~~ 本来是手撸了代码的,不想再敲一遍了,但由于:,以及当时写的太快,手撸代码部分有几处错误,于是功利的我~,又敲了一份代码,并优化了一下:#defin...原创 2022-05-13 23:15:28 · 302 阅读 · 0 评论 -
快速找第k大/小的数模板
做题时经常会遇到直接或变相找第几大或第几小的问题,提供一个模板:即利用对快速排序的改造快速找到第k大/小的数;先简单说一下快排的原理(会的直接跳过):分区。即挑出一个基准数,将比这个数小的数放在前面,比这个数大的数放在后面。这样完成一次分区。经过不断的分区来使每个数放到它该去的地方。详见两个博客:快速排序原理;单循环完成快速排序(后面这个是我用的快排)快排的动图展示再说说如何应用:要找第k大的数,大多数人会选择先排好序再从后往前标记着寻找,但这样对于一些数据较大的题很...原创 2022-04-08 15:50:00 · 1512 阅读 · 3 评论 -
B - 阿克曼函数(记忆化搜索(啊呸))
在我的不懈努(爆)力(零)下,我把阿克曼函数的记忆化搜索用我的泥头车创出来了(啧),不过这个记忆化应该不是最优解(或者说仿?),31ms跑完小数据,说实话有点慢(确实),如果有大lao写出了正宗的记忆化搜索,,请赐教!评论或私信都行!阿克曼(Arkmann)函数A(m,n)A(m,n)中,m与n的定义域是非负整数且本题中m<=3,n<=16。函数的定义为:(网上有阿克曼的定义,这题干应该是倒格式的时候出错了,把格式代码化了,别理它)$$akm(m,n)=\left\...原创 2022-01-25 20:32:38 · 434 阅读 · 0 评论 -
A - Function Run Fun
A - Function Run FunA - Function Run FunWe all love recursion! Don't we?Consider a three-parameter recursive function w(a, b, c):if a <= 0 or b <= 0 or c <= 0, then w(a, b, c) returns:1if a > 20 or b > 20 or c > 20, then w(a, b..原创 2022-01-25 16:38:07 · 430 阅读 · 0 评论 -
B - 不容易系列之一
B - 不容易系列之一大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了!做好“一件”事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总是比挣钱容易的道理一样。话虽这样说,我还是要告诉大家,要想失败到一定程度也是不容易的。比如,我高中的时候,就有一个神奇的女生,在英语考试的时候,竟然把40个单项选择题全部做错了!大家都学过概率论,应该知道出现这种情况的概率,所以至今我都觉得这是一件神奇的事情。如果套用一句经典的评语,我们可以这样总结:一个人做错一道选择题并不难,难..原创 2022-01-24 13:09:34 · 172 阅读 · 0 评论 -
A - 约瑟夫环
A - 约瑟夫环N个人坐成一个圆环(编号为1 - N),从第1个人开始报数,数到K的人出列,后面的人重新从1开始报数。问最后剩下的人的编号。例如:N = 3,K = 2。2号先出列,然后是1号,最后剩下的是3号。Input2个数N和K,表示N个人,数到K出列。(2 <= N, K <= 10^6)Output最后剩下的人的编号Sample Input3 2Sample Output3Sponsor普通的约瑟夫环写法TLE(最大1E12,我.原创 2022-01-24 11:21:05 · 118 阅读 · 0 评论 -
F - 滑雪
F - 滑雪Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面.原创 2022-01-23 19:34:50 · 82 阅读 · 0 评论 -
全排列问题
全排列问题***在不同平台上要求不同,洛谷支持所有的输出格式,而vj不支持cout(别问我咋知道的...dddd)这种题的主要思路就是用深搜探索排列情况,没啥需要注意的...废话不多说,放码过来:题目:输出自然数11到nn所有不重复的排列,即nn的全排列,要求所产生的任一数字序列中不允许出现重复的数字。输入格式一个整数 n(1≤n≤9)。输出格式由 1∼n组成的所有不重复的数字序列,每行一个序列。每个数字保留5个常宽。Sample In...原创 2022-01-23 14:40:33 · 481 阅读 · 0 评论 -
B - 单词接龙
发个题解存个码...(顺便刷一下题解指标...)B - 单词接龙单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如 beast和 astonish,如果接成一条龙则变为 beastonish ,另外相邻的两部分不能存在包含关系,例如 at 和 atide 间不能相连。输入格式输入的第一行为一个单独的整数n (n \le 20)n(..原创 2022-01-21 17:46:44 · 215 阅读 · 0 评论 -
A - Oil Deposits
A - Oil DepositsThe 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 divides the land into numerous square plots. I..原创 2022-01-19 22:41:12 · 155 阅读 · 0 评论 -
B - 曲线
B - 曲线明明做作业的时候遇到了nn个二次函数S_i(x)= ax^2 + bx + cSi(x)=ax2+bx+c,他突发奇想设计了一个新的函数F(x) = \max{S_i(x)}, i = 1\ldots nF(x)=max{Si(x)},i=1…n。明明现在想求这个函数在[0,1000][0,1000]的最小值,要求精确到小数点后四位,四舍五入。输入格式输入包含TT组数据,每组第一行一个整数nn;接下来nn行,每行33个整数aa,bb,...原创 2022-01-16 14:53:15 · 566 阅读 · 0 评论 -
E - 切绳子
E - 切绳子有nn条绳子,它们的长度分别为L_iLi,如果从它们中切割出mm条长度相同的绳子,这mm条绳子每条最长能有多长?输入格式第一行两个整数nn和mm。接下来nn行,每行一个实数,描述了每条绳子的长度L_iLi。数据范围:1\le n\le m\le 10^41≤n≤m≤104,1\le L_i \le 10^51≤Li≤105。输出格式切割后每条绳子的最大长度,保留66位小数。Sample Input4 118.02...原创 2022-01-15 22:56:58 · 258 阅读 · 0 评论 -
C - 跳石头
C - 跳石头题目描述一年一度的“跳石头”比赛又要开始了!这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有NN块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳跃距离尽可能长。由于预算限制,组委会至多从起点和终点之间移走MM块岩石(不能移走起点和终点的岩石)。输入格式输入文件...原创 2022-01-15 21:17:12 · 251 阅读 · 0 评论 -
B - 扑克牌
B - 扑克牌Description你有n种牌,第i种牌的数目为ci。另外有一种特殊的牌:joker,它的数目是m。你可以用每种牌各一张来组成一套牌,也可以用一张joker和除了某一种牌以外的其他牌各一张组成1套牌。比如,当n=3时,一共有4种合法的套牌:{1,2,3}, {J,2,3}, {1,J,3}, {1,2,J}。 给出n, m和ci,你的任务是组成尽量多的套牌。每张牌最多只能用在一副套牌里(可以有牌不使用)。Input第一行包含两个整数n, m,即牌的种数和joker的个数。...原创 2022-01-14 23:36:35 · 201 阅读 · 0 评论 -
L - 贪心——混合牛奶
L - 贪心——混合牛奶由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要。帮助 Marry 乳业找到最优的牛奶采购方案。Marry 乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是不同的。此外,就像每头奶牛每天只能挤出固定数量的奶,每位奶农每天能提供的牛奶数量是一定的。每天 Marry 乳业可以从奶农手中采购到小于或者等于奶农最大产量的整数数量的牛奶。给出 Marry 乳业每天对牛奶的需求量,还有每位奶农提供的牛奶单价和产量。计算采购足够数量的牛奶所...原创 2022-01-08 23:34:24 · 89 阅读 · 0 评论 -
单循环完成快速排序(C语言)
注:这个代码是一位强者教我的,我以一个初学者的思维加了点注来帮助更多像我一样刚刚入门想学习算法又不会C++的编程者们理一理思路(我是屑大学生,加的注可能会有逻辑不严谨的地方),希望对你们有些帮助下面以一个内含0~9十个数字的简单数组来展示单循环完成的快速排序#include<stdio.h>void quicksort(int a[], int left, int right) //这个加不加void都行,加了更严谨{ int p; if (left < right)原创 2021-12-13 17:21:45 · 1781 阅读 · 2 评论