
算法
rewqaqa
坚持!
展开
-
硬币找零(java实现)
硬币找零(动态规划)import java.util.Arrays;public class Coin { static int N=6;//待找零钱 static int data[] = {1,3,4};//硬币价值 public static void getNum() { int sum[] = new int[N+1]; Arrays.fill(sum,Int...原创 2020-03-31 14:11:25 · 621 阅读 · 0 评论 -
分组背包(java实现)
分组背包问题描述有若干件物品,取一个物品需要付出的代价是weight[ i ],价值为value[ i ]。物品被分为 k 组,每组只能选取一个物品。现有一个容量为W的背包,问如何选取物品放入背包,使得背包内物品的总价值最大。分析状态转移方程sum[k][j]=max{sum[k-1][j],sum[k-1][j-weight[i]]+value[i]|物品i属于第k组}sum[ k...原创 2020-03-30 13:23:02 · 745 阅读 · 0 评论 -
二维背包(java实现)
二维背包问题描述有N件物品,取一个物品需要付出两种代价分别是weight1[ i ]和weight2[ i ],价值为value[ i ]。现有一个容量为W1和W2(分别对应物品两种代价)的背包,问如何选取物品放入背包,使得背包内物品的总价值最大。第 i 个物品可以放一次。分析和01背包差不多,只是多了一种代价状态转移方程sum[j][k]=max(sum[j][k], sum[j-w...原创 2020-03-29 17:47:34 · 518 阅读 · 0 评论 -
混合背包(java实现)
混合背包问题描述有N件物品,每件物品的重量为weight[ i ],价值为value[ i ]。现有一个容量为W的背包,问如何选取物品放入背包,使得背包内物品的总价值最大。第 i 个物品可以放一次或者无限次或者有限次。分析其实就是将01背包,完全背包,多重背包结合起来,直接看代码吧代码public class BackPack03 { //混合三种背包 static int N...原创 2020-03-25 22:06:40 · 337 阅读 · 0 评论 -
多重背包(java实现)
多重背包问题描述有N件物品,每件物品的重量为weight[ i ],价值为value[ i ]。现有一个容量为W的背包,问如何选取物品放入背包,使得背包内物品的总价值最大。同一物品可以放n[ i ]次。分析两种解决办法1,将同一物品复制n[ i ]份,转换成01背包2,将n[ i ]拆分为1 2 4 8 … 2 ^ (k-1) , count[ i ]-2^k ,这些数存在倍数关系,...原创 2020-03-25 14:01:28 · 1097 阅读 · 0 评论 -
完全背包(java实现)
完全背包问题描述有N件物品,每件物品的重量为weight[ i ],价值为value[ i ]。现有一个容量为W的背包,问如何选取物品放入背包,使得背包内物品的总价值最大。同一物品可以放无限次。分析完全背包和01背包还是很像的,唯一不一样的就是同一物品可以无限取多次先给出状态转移方程:sum[ i ][ j ]=max(f[ i-1 ][ j - k * weight[ i ] ]+k...原创 2020-03-24 21:05:12 · 668 阅读 · 0 评论 -
01背包(java实现)
01背包问题问题描述有N件物品,每件物品的重量为weight[ i ],价值为value[ i ]。现有一个容量为W的背包,问如何选取物品放入背包,使得背包内物品的总价值最大。物品不重复。分析首先介绍sum[ i ][ j ],sum[ i ][ j ]意思是:背包容量为j时,在前i件物品中取小于等于i件物品,此时取得的物品的价值最大,也就是此时背包里面物品的总价值最大。现在有如下表...原创 2020-03-24 15:57:53 · 4204 阅读 · 7 评论 -
迷宫问题Java实现(BFS和DFS)
迷宫问题迷宫问题算是经常会碰到的,类似于下图,这是一个5x5的迷宫,这里数字1代表可以走的路,数字0代表不可以走的路,从(0,0)到(4,4)显然有两条路径。1, DFS求迷宫路径DFS(Depth-First-Search,深度优先搜索),顾名思义总是选择深度大的节点去访问,下面的图是一个二叉树,如果从头结点F开始深度优先遍历,若访问了C则下一个节点不可能是E,因为C和E的深度是一样的,违...原创 2020-02-06 13:19:08 · 3218 阅读 · 1 评论 -
第九届蓝桥杯省赛JAVA真题----螺旋折线
题目标题:螺旋折线如图p1.pgn所示的螺旋折线经过平面上所有整点恰好一次。对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度。例如dis(0, 1)=3, dis(-2, -1)=9给出整点坐标(X, Y),你能计算出dis(X, Y)吗?【输入格式】X和Y对于40%的数据,-1000 <= X, Y <= 100...原创 2019-03-01 21:30:18 · 551 阅读 · 3 评论 -
快速排序和三向切分的快速排序
前言原创 2019-02-12 19:34:16 · 490 阅读 · 0 评论 -
全组合--java递归
全组合递归 java实现之前在网上找的代码,不记得是谁写的了,觉得写的很不错,分享一下import java.util.Scanner;public class Combination { public static int data[]; public static int r; public static int n; public static int flag=0; ...原创 2019-02-14 17:09:04 · 333 阅读 · 0 评论 -
Jam的计数法--Java
题目描述Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,而是使用小 写英文字母计数,他觉得这样做,会使世界更加丰富多彩。在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前 面的字母小于排在它后面的字母。我们把这样的“数字”称为Jam数字。在Jam数字中,每个字母互不相同,而且从左到右是严格递增的。每次,Jam还指定 使用字母的范围,例如,从2到...原创 2019-01-25 21:49:28 · 1043 阅读 · 0 评论 -
全排列--递归Java
全排列–递归全面解析题目:输入一段字符串,输出字符串元素的全排列分析:这题网上有两种做法,一种是字典序法:原创 2018-12-01 10:58:31 · 830 阅读 · 0 评论 -
回溯法 --数独
蓝桥杯——数独JAVA这几天开始在准备蓝桥杯了,想借此来学习一下算法,提高自己编程的能力,前几天看的一个数独题,虽然知道是用深度优先去做,但是在做的时候还是遇到了些问题,但是感觉回溯算法做题时是有一点套路的,所以决定写下来。题目:你一定听说过“数独”游戏。如【图1.png】,玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个同色九宫内的数字均含1-9,...原创 2018-11-28 11:20:16 · 1495 阅读 · 2 评论