算法
文章平均质量分 82
SWEENEY_HE
hold on
展开
-
【动态规划】完全背包
题目描述设有n种物品,每种物品有一个重量及一个价值。但每种物品的数量是无限的,同时有一个背包,最大载重量为M,今从n种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于M,而价值的和为最大。输入格式第一行:两个整数,M(背包容量,M<=200)和N(物品数量,N<=30);第2~N+1行:每行二个整数Wi、Ci,表示每个物品的重量和价值。输出格式仅一行,一个数,表示最大总价值。样例输入10 42 13 34 57 9样例输出12题解原创 2021-08-07 12:23:30 · 628 阅读 · 0 评论 -
【动态规划】01背包及其优化详解
题目描述有N件物品和一个容量为V的背包。放入第i件物品耗费的空间是Ci,得到的价值是Wi。求解在不超过容量的前提下,将哪些物品装入背包可使价值总和最大。输入格式第1行两个正整数,分别表示N和V,中间用一个空格隔开。第2行N个正整数,表示Ci,中间用一个空格隔开。第3行N个正整数,表示Wi,中间用一个空格隔开。其中:1≤N≤100,1≤V≤106,1≤Ci≤10000,1≤Wi≤10000。输出格式一行一个正整数,表示最大的价值总和。样例输入4 208 9 5 25 6原创 2021-08-06 13:02:49 · 2440 阅读 · 2 评论 -
【动态规划与二分】最长上升子序列
题目描述给定N个数,求这N个数的最长上升子序列的长度。样例输入72 5 3 4 1 7 6样例输出4思路:动态规划1.状态与初值该题中2.状态转移方程3.初值代码原创 2021-08-05 11:09:47 · 229 阅读 · 0 评论 -
【动态规划】大盗阿福
题目描述__阿福是一名经验丰富的大盗。趁着月黑风高,阿福打算今晚洗劫一条街上的店铺。__这条街上一共有 N 家店铺,每家店中都有一些现金。阿福事先调查得知,只有当他同时洗劫了两家相邻的店铺时,街上的报警系统才会启动,然后警察就会蜂拥而至。__作为一向谨慎作案的大盗,阿福不愿意冒着被警察追捕的风险行窃。他想知道,在不惊动警察的情况下,他今晚最多可以得到多少现金?输入格式输入的第一行是一个整数 T(T≤50),表示一共有 T 组数据。接下来的每组数据,第一行是一个整数 N(1≤N≤100,原创 2021-08-04 12:50:51 · 276 阅读 · 0 评论 -
走出迷宫-BFS详解
题目描述当你站在一个迷宫里的时候,往往会被错综复杂的道路弄得失去方向感,如果你能得到迷宫地图,事情就会变得非常简单。假设你已经得到了一个n*m的迷宫的图纸,请你找出从起点到出口的最短路。输入格式第一行是两个整数n和m(1<=n,m<=100),表示迷宫的行数和列数。接下来n行,每行一个长为m的字符串,表示整个迷宫的布局。字符’.‘表示空地,’#'表示墙,'S’表示起点,'T’表示出口。数据保证可以从 S 走到 T 。输出格式输出从起点到出口最少需要走的步数。样例输入3 3S原创 2021-07-29 15:30:00 · 741 阅读 · 0 评论 -
剑指 Offer 59 - I. 滑动窗口的最大值
思路这是使用单调队列的经典题目。难点是如何求一个区间里的最大值呢? (这好像是废话),暴力一下不就得了。暴力方法,遍历一遍的过程中每次从窗口中在找到最大的数值,这样很明显是O(n * k)的算法。有的同学可能会想用一个大顶堆(优先级队列)来存放这个窗口里的k个数字,这样就可以知道最大的最大值是多少了, 但是问题是这个窗口是移动的,而大顶堆每次只能弹出最大值,我们无法移除其他数值,这样就造成大顶堆维护的不是滑动窗口里面的数值了。所以不能用大顶堆。此时我们需要一个队列,这个队列呢,放进去窗口里的元素,转载 2021-03-14 21:44:48 · 141 阅读 · 0 评论 -
C/C++二分法实现开平方
1.数学原理求一个数c的平方等价于求方程 x2=cx^{2} = cx2=c 的解,方程解的问题可以转换为函数零点问题。即求函数 f(x)=x2−cf(x) = x^{2}-cf(x)=x2−c的零点。零点定理:若f(a)f(b)<0则∃m∈\in∈[a,b],有f(m) = 0由零点定理可知,只需估计a,b的值,令m=(a+b)/2,然后不断二分就可以得到更加小的区间[a,b]。使得f(m)≃0f(m) \simeq 0f(m)≃0,此时的m就是所求。现在问题就是如何选取a,b的值,上述可知原创 2021-03-11 23:57:34 · 1422 阅读 · 0 评论 -
并查集
部分转载转载自:https://blog.csdn.net/liujian20150808/article/details/50848646为了解释并查集的原理,我将举一个更有爱的例子。 话说江湖上散落着各式各样的大侠,有上千个之多。他们没有什么正当职业,整天背着剑在外面走来走去,碰到和自己不是一路人的,就免不了要打一架。但大侠们有一个优点就是讲义气,绝对不打自己的朋友。而且他们信奉“朋友...转载 2019-03-03 09:52:10 · 203 阅读 · 0 评论 -
回溯_模板题_n皇后问题
一.题目描述:检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列2 4 6 1 3 5来描述,第i个数字表示在第i行的相应位置有一个棋子,如下:行号 1 2 3 4 5 6列号 2 4 6 1 3 5这只是跳棋放置的一个解。请编一个程序找出所有跳棋放置的解...原创 2019-02-09 01:42:47 · 783 阅读 · 0 评论 -
Djikstra最短路径算法
一、概括:贪心策略Dijktra最短路径算法采用的是一种贪心的策略,通过逐次地找到各点距起点的最短路径并由该路径更新该顶点出度的路径,进而使图中所有点距离起点路径最短的算法。 详细推导过程可见:https://blog.csdn.net/qq_35644234/article/details/60870719 二、数据结构:1.一维数组:int dis...原创 2018-08-02 23:21:13 · 4765 阅读 · 1 评论 -
最优乘车问题/dijsktra最短路径算法
H城是一个旅游胜地,每年都有成千上万的人前来观光.为方便游客,巴士公司在各个旅游景点及宾馆、饭店等地都设置了巴士站,并开通了一些单向巴士线路。每条单向巴士线路从某个巴士站出发,依次途径若干个巴士站,最终到达终点巴士站。阿昌最近到H城旅游,住在CUP饭店。他很想去S公园游玩。听人说,从CUP饭店到S公园可能有也可能没有直通巴士。如果没有,就要换乘不同线路的单向巴士,还有可能无法乘巴士到达。现在用...原创 2018-08-04 18:27:11 · 3027 阅读 · 1 评论 -
1230: 删数问题(贪心)
时间限制: 1 Sec 内存限制: 2 MB题目描述键盘输入一个高精度的正整数N(此整数中没有‘0’),去掉其中任意S个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数最小。输出应包括所去掉的数字的位置和组成的新的正整数。(N不超过10^8位)输入数据均不需判错。输入NS输出最后剩下的最小数。样例输入...原创 2018-08-05 10:36:56 · 262 阅读 · 0 评论