![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 70
littlebamboo小竹子
这个作者很懒,什么都没留下…
展开
-
【贪心算法】 Opponents
这道题写伪代码就好了!2 210002。原创 2023-12-09 19:16:21 · 1293 阅读 · 0 评论 -
【贪心策略】Maximum Sum最大子矩阵和
(画的图和是实际写的代码有一些不同,不过思路都没问题~)原创 2023-12-04 14:27:28 · 1078 阅读 · 0 评论 -
【贪心策略】Shoemaker‘s Problem
Shoemaker has N jobs (orders from customers) which he must make. Shoemaker can work on only one job in each day. For each i-th job, it is known the integer Ti (1 ≤ Ti ≤ 1000), the time in days it takes the shoemaker to finish the job. For each day of delay原创 2023-12-04 10:17:54 · 1055 阅读 · 0 评论 -
【OJ for Divide and Conquer】OJ题解
使用check检查函数判断当前搜索到的位置能不能放置碉堡,若是可以放置,则将本轮的总和加一,并将此处标记为%,意思是有一座碉堡。在每一步,我们维护两个变量,一个是全局最优,就是到当前元素为止最优的解是,一个是局部最优,就是必须包含当前元素的最优的解。顾名思义,深度优先,则是以深度为准则,先一条路走到底,直到达到目标。注意一个易错点,每轮loop都必须要指定退出条件,在这里条件就是当两个子序列的指针指向同一个数时,退出。我们只需要在归并排序的算法中,在合并时,判断前面子数列的值是否大于后面子序列的值。原创 2023-10-29 21:08:59 · 309 阅读 · 1 评论 -
【算法学习】归并算法Merge Sort总结
思路简单,速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。原创 2023-10-19 21:02:34 · 271 阅读 · 0 评论 -
C++STL知识集合
STL嘿,c++好久不见,再次遇见你熟悉又陌生。很多刷题练出来的感觉一点点褪去,需要用实际题目再一次熟悉起来。本文章将持续更新今天来及时补救一下STL的概念,方便今后更高效的刷题。STL中,是把容器中迭代器传给算法,在算法中通过迭代器访问/遍历元素[参考教程1][参考教程2]当然最终的参考资料是官方文档:https://www.cplusplus.com/reference/前提输出迭代器(output iterator,记为:OutIt):可以修改它所指向的容器元素输入迭代器(in原创 2022-03-07 21:56:02 · 537 阅读 · 0 评论 -
【一题多解】搜索二维矩阵
类似于LeetCode 240. 搜索二维矩阵 II,btw 提前申明我写的都是在且仅在本人脑子里验证过的代码片段方法1:O(n)的王者解法关于矩阵的算法题,学会观察是最重要的,这个就类似于找规律——一旦你发现了大于(x,y)位置的数都在它上面,小于它的都在它下面,就可以写代码了。//最简单的方法//从左上角开始遍历bool solution(vector<vector<int>>& a, int target){ int i=0,j=0; int n=a.原创 2021-12-25 22:50:50 · 290 阅读 · 0 评论 -
【分治算法】求n个元素序列中第2大的元素
题目:给出一个分治算法来找出n个元素序列中的第2大的元素。方法一: 一次遍历求解【不是分治】思路: 默认第一个数就是第一大,第二个数字就是第二大,然后依次遍历维护这个假设。//依次遍历的方法int max1=nums[0],max2=nums[1];for(int i=1;i<n;i++){ //当后面有比第一大还大的数时,第一大被改变,变成第二大 if(nums[i]>max1){ max2=max1; max1=nums[i]; }原创 2021-12-25 14:47:37 · 5224 阅读 · 1 评论 -
【我的算法笔记】简单背包-暴力搜索
这是一个纯纯暴力,为了锻炼自己的代码能力就敲了敲。难得一次提交即AC的经历。思维之花-简单背包时间限制 1000 ms内存限制 64 MB题目描述.李老师正准备暑假旅行,他有一个容量为L的行李箱和n个物品(n不超过20),每个物品都有自己的体积,物品可以放入行李箱,但行李箱中物品的总体积不能超过行李箱容量,李老师现在想知道他有多少种携带物品的方案(一个物品都不带也算一种方案)输入数据第一行为两个正整数n和L,分别代表物品总数和行李箱容量,n<=20,L<=1e9 接下来一行为.原创 2021-11-25 20:34:37 · 315 阅读 · 0 评论 -
C++STL知识补救
默认为从大到小排序从小到大:priority_queue<int, vector, greater > q;//从小到大的优先级队列,可将greater改为less,即为从大到小可以用的函数如上#include<queue>priority_queue<int, vector<int>, greater<int>> nums;...原创 2021-11-25 16:37:59 · 262 阅读 · 0 评论 -
算法笔记【回溯算法+搜索与剪枝 +二分类】切蛋糕
切蛋糕时间限制 1000 ms内存限制 128 MB题目描述 Facer今天买了n块蛋糕,不料被信息组中球球等好吃懒做的家伙发现了,没办法,只好浪费一点来填他们的嘴巴。他答应给每个人留一口,然后量了量每个人口的大小。Facer有把刀,可以切蛋糕,但他不能把两块蛋糕拼起来,但是他又不会给任何人两块蛋糕。现在问你,facer怎样切蛋糕,才能满足最多的人。(facer的刀很强,切的时候不会浪费蛋糕)。输入数据第一行 n,facer 有 n 个蛋糕。接下来 n 行,每行表示一个蛋糕的大小。再一行一.原创 2021-11-21 22:37:38 · 630 阅读 · 0 评论 -
算法笔记【归并排序】:逆序对
Problem F. Ricky队形时间限制 1000 ms内存限制 256 MB题目描述Ricky班里有n(2<=n<=100000)个人,每个人有一个学号ai(1<=ai<=n),保证学号ai互不相同。Ricky手里有一张班级合影,他发现虽然大家是按身高从低到高排好队的,但如果按学号看的话却不一定是从小到大,他想看一看如果按照学号来看,这个队排的有多乱。Ricky把混乱度定义为队列中逆序对的个数,即:如果从前往后看,大家正好是按照学号从小到大排列的,那逆序对为0个,混乱度原创 2021-11-17 18:18:04 · 688 阅读 · 0 评论 -
算法笔记【背包问题】:课题选择
Problem E. 最佳课题选择时间限制 1000 ms内存限制 128 MB题目描述 Matrix67要在下个月交给老师n篇论文,论文的内容可以从m个课题中选择。由于课题数有限,Matrix67不得不重复选择一些课题。完成不同课题的论文所花的时间不同。具体地说,对于某个课题i,若Matrix67计划一共写x篇论文,则完成该课题的论文总共需要花费Ai*x^Bi个单位时间(系数Ai和指数Bi均为正整数)。给定与每一个课题相对应的Ai和Bi的值,请帮助Matrix67计算出如何选择论文的课题使得他可原创 2021-11-15 21:15:49 · 187 阅读 · 0 评论 -
算法笔记:Dilworth定理+导弹拦截
Dilworth定理Dilworth定理是组合数学的一个重要定理,它是定义在偏序集上的,在解决实际问题时非常有效。比如经典的题目“导弹拦截”。内容:偏序集上最小链划分中链的数量等于其反链长度的最大值。什么是链?我们假设在若干元素构成一个集合,那么,这个集合是链当且仅当这个集合的所有元素两两是可比的。换句话说,你可以看成是某个偏序关系中的元素。什么叫最小链划分?我们将S中的所有元素划分成若干条链,使每个元素都在且仅在唯一一条链中,叫链划分。最小就是指数量最小。什么是反链?正如名字原创 2021-11-13 22:22:00 · 645 阅读 · 0 评论 -
算法——动态规划2
Problem A. 晴天小猪历险记之Hill时间限制 1000 ms内存限制 128 MB题目描述 这一天,他来到了一座深山的山脚下,因为只有这座深山中的一位隐者才知道这种药草的所在。但是上山的路错综复杂,由于小小猪的病情,晴天小猪想找一条需时最少的路到达山顶,但现在它一头雾水,所以向你求助。 山用一个三角形表示,从山顶依次向下有1段、2段、3段等山路,每一段用一个数字T(1< =T< =100)表示,代表晴天小猪在这一段山路上需要爬的时间,每一次它都可以朝左、右、左上、右上四个原创 2021-10-28 20:54:08 · 307 阅读 · 0 评论 -
算法:动态规划
SOS终于开始有趣的(可怕)动态规划了,这个真的耗费脑子,还是多多练题叭!题目来源:ZYJ老师OJ题(第二周)01背包问题有n件物品,每件物品的重量为w[i],价值为c[i]。现有一个容量为V的背包,问如何选取物品放入背包,使得背包内物品的总价值最大。其中每种物品都只有一件。令dp[i][j]来表示前i件物品装入容量为j的背包所能得到的最大总价值。那么对于dp[i][j]来说,i指的是前i件物品,j指的是最大的空间值#include <iostream>#include <原创 2021-10-25 16:12:35 · 110 阅读 · 0 评论 -
算法——过河
题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子,青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点:0,1,……,L(其中L是桥的长度)。坐标为0的点表示桥的起点,坐标为L的点表示桥的终点。青蛙从桥的起点开始,不停的向终点方向跳跃。一次跳跃的距离是S到T之间的任意正整数(包括S,T)。当青蛙跳到或跳过坐标为L的点时,就算青蛙已经跳出了独木桥。题目给出独木桥的长度L,青蛙跳跃的距离范围S,原创 2021-10-23 11:13:37 · 384 阅读 · 0 评论 -
算法:小凯的疑惑
【题目描述】小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有 无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小 凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在 小凯无法准确支付的商品。【输入输出格式】输入格式:两个正整数 a 和 b,它们之间用一个空格隔开,表示小凯中金币的面值。输出格式:一个正整数 N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。输入输出样例输入样例:3 7输出样.原创 2021-10-23 10:20:18 · 1303 阅读 · 0 评论 -
算法:二分法
计算机学习过程中,算法也是一个大头,而且相当之重要。无论在学术界,还是工业界,拥有极强的coding能力都是很吃香的,作为未来程序员,算法一定一定不能落下。为此,专门开此专栏,督促自己学习算法,勤耍算法题,勤动脑,勤总结。题目来源:ZYJ老师OJ题(第二周)文章目录一、基本二分法的描述二、题目实战1.木棍分割(入门)2. 石头移动(困难)3.快递包裹一、基本二分法的描述二分搜索(英语:binary search),也称折半搜索、对数搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组原创 2021-10-16 20:42:21 · 1939 阅读 · 0 评论