![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
命z
2018.1.23
展开
-
算法【二分搜索?啥时候用】
在说二分搜索前先说一下二分查找。二分查找的前提条件的是有序的。这样才能保证每一次都排除一半的数据,时间复杂度才是O(logN)实现:#include <iostream>using namespace std;//二分查找 返回位置标号 时间复杂度O(logN) //参数:数组list,数组区间[left, right], 要查找的数numberint b...原创 2020-03-26 22:14:12 · 717 阅读 · 0 评论 -
算法-01背包问题【对于 f[i][j] 的 j 为不超过、恰好等于、剩余空间的详解】
对于01背包问题的三种情况以及代码分析有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件...原创 2020-03-20 13:57:54 · 1049 阅读 · 2 评论 -
01背包问题【f [i][j] 为剩余空间情况——数组实现】
有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个...原创 2020-03-20 13:47:06 · 430 阅读 · 0 评论 -
01背包问题【f [i][j] 为恰好等于情况——数组实现】
有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个...原创 2020-03-20 13:42:28 · 447 阅读 · 0 评论 -
01背包问题【f [i][j] 为不超过 j 情况——数组实现】
有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个...原创 2020-03-20 12:50:54 · 199 阅读 · 0 评论 -
算法【凑数问题】
用两个正整数 ( a, b)来凑正整数c,即ax + by = c 。x,y为整数那么那些数凑的出来?那些数凑不出来呢?分别讨论 x,y,c 的情况,进行分析。(1)当a,b互质的( gcd(a, b) = 1)(x,y为整数)无论 c 为何值,都有整数 x,y 能把 c 凑出来(x,y为非负整数)凑不出来的 c 的个数有限,且最大凑不出来的 c = a * b - a - b(...原创 2020-03-18 19:10:49 · 2696 阅读 · 0 评论 -
分治——大整数乘法(趣学算法)
问题分析:当分到只有一位数时候,问题将会变的简单。算法设计分析伪代码详解算法复杂度分析原创 2020-03-04 22:32:59 · 494 阅读 · 0 评论 -
约瑟夫问题
约瑟夫生者死者游戏约瑟夫游戏的大意:30个游客同乘一条船,因为严重超载, 加上风浪大作,危险万分。因此船长告诉乘客,只有将全船 一半的旅客投入海中,其余人才能幸免于难。无奈,大家只 得同意这种办法,并议定30 个人围成一圈,由第一个人数起,依次报数,数到第9人,便把他投入大海中,然后再从 他的下一个人数起,数到第9人,再将他投入大海中,如此 循环地进行,直到剩下 15 个游客为止。问:哪些位置是...翻译 2020-03-03 20:57:59 · 691 阅读 · 0 评论 -
k倍区间——前缀和
问题描述 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数, 我们就称这个区间[i, j]是K倍区间。 你能求出数列中总共有多少个K倍区间吗?输入格式 第一行包含两个整数N和K。(1 <= N, K <= 100000) 以下N行每行包含一个整数Ai。(1 &l...翻译 2020-02-29 14:09:50 · 409 阅读 · 0 评论 -
将 字符串 反转的 6种Java 方法
方法一:递归法(分治思想)public static String reverse1(String s) { int length = s.length(); if (length <= 1){ return s; } String left = s.substring(0, length / 2); String right = s.substrin...翻译 2019-05-05 18:56:33 · 357 阅读 · 1 评论 -
java解决组合问题
问题1:假设袋子里有编号为1,2,...,m这m个球。现在每次从袋子中取一个球几下编号,放回袋中再取,取n次作为一组,枚举所有可能的情况。分析:每一次取都有m种可能的情况,因此一共有种情况。这里我们取m = 3, n = 4,则有种不同的情况。代码:import java.util.Stack;public class Test { static int cnt...转载 2019-03-20 19:41:10 · 790 阅读 · 0 评论 -
剪枝算法
一:剪枝策略的寻找的方法1)微观方法:从问题本身出发,发现剪枝条件2)宏观方法:从整体出发,发现剪枝条件。3)注意提高效率,这是关键,最重要的。总之,剪枝策略,属于算法优化范畴;通常应用在DFS 和 BFS 搜索算法中;剪枝策略就是寻找过滤条件,提前减少不必要的搜索路径。二:剪枝算法(算法优化)1、简介在搜索算法中优化中,剪枝,就是通过某种判断,避免一些不必要...转载 2019-03-03 13:22:12 · 16483 阅读 · 0 评论 -
贪心算法
一个谈心算法总是做出当前最好的选择,也就是说,它期望通过局部最优选择从而得到全局最优的解决方案。 ...原创 2019-01-20 16:21:47 · 156 阅读 · 0 评论 -
基础 --- 三角形(全排列式)
【问题描述】将1,2,···,9共9个数排成下列形态的三角形。其中:a~i分别表示1,2,······,9中的一个数字,并要求同时满足下列条件:(1)a<f<i;(2)b<d, g<h, c<e(3)a+b+d+f=f+g+h+i=i+e+c+a=P程序要求:根据输入的边长之和P输出所有满足上述条件的三角形的个数以及其中的一种方案。...原创 2019-01-24 20:06:05 · 2041 阅读 · 0 评论