![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
NeverWA
哈啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
展开
-
动态规划之0-1背包
题目动态规划之0-1背包问题有N件物品和一个容积为M的背包。第i件物品的体积w[i],价值是v[i]。求解将哪些物品装入背包可使价值总和最大。每种物品只有一件,可以选择放或者不放(N<=3500,M <= 13000)。思路对于这个问题而言,许多人的第一反应就是求每件物品的平均价值,然后最先装平均价值最大的物品。然而,这样的贪心法是不对的。假如这种情况: 假设背包...原创 2018-04-26 21:54:56 · 13041 阅读 · 0 评论 -
动态规划之最长公共子序列
动态规划之最长公共子序列问题给出两个字符串,求出这样的一 个最长的公共子序列的长度:子序列 中的每个字符都能在两个原串中找到, 而且每个字符的先后顺序和原串中的 先后顺序一致。Sample Input: abcfbc abfcab programming contest abcd mnpSample Output: 4 2 0解析对于动态规划的...原创 2018-04-05 16:44:53 · 12697 阅读 · 0 评论 -
动态规划之最长上升子序列
动态规划之最长上升子序列问题描述输入数据 输入的第一行是序列的长度N (1 &lt;= N &lt;= 1000)。第二行给出 序列中的N个整数,这些整数的取值范围都在0到10000。 输出要求 最长上升子序列的长度。 输入样例 7 1 7 3 5 9 4 8 输出样例 4输入样例 9 2 7 1 5 6 4 3 8 9输出样例 5解法一:递归式...原创 2018-03-29 16:42:00 · 13168 阅读 · 0 评论 -
动态规划之数字三角形
动态规划之数字三角形问题描述问题: 给定一个由n行数字组成的数字三角形,如下图所示: 试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大(每一步只能从一个数走到下一层上和它最近的左边的数或者右边的数)。输入格式: 第一行是数字三角形的行数,接下来 n 行是数字三角形中的数字。 输出格式: 最大总和(整数) 样例输入 5 7 3...原创 2018-03-28 11:24:23 · 17245 阅读 · 0 评论 -
动态规划之神奇的口袋
动态规划之神奇的口袋题目有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。 John现在有n(1≤n ≤ 20)个想要得到的物品,每个物品的体积分别是a1, a2……an。 John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋, John就可以得到这些物品。现在的问题是, John有多少种不同的选择物品的方式。...原创 2018-04-09 22:03:20 · 14363 阅读 · 1 评论 -
动态规划之最佳加法表达式
动态规划之最佳加法表达式题目有一个由1..9组成的数字串.问如果将m个加号插入到这个数字串中,各种可能形成的表达式中,值最小的那个表达式的值是多少?解析假设数字串的长度为n,有m个括号,插入的所有可能性为n!/m!。如果要把所有可能性全部计算出来再找出最小值,这样计算的时间复杂符是巨大的。换一个角度思考,从后往前来看:若最后一个加号添加完毕,由于无论加号的位置怎样变化,...原创 2018-04-09 17:00:57 · 28688 阅读 · 1 评论 -
斐波那契数列的若干解法
斐波那契数列的若干解法什么是斐波那契数列斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=1,F(1)=1, F(n)=F(n...原创 2018-04-07 18:12:26 · 13174 阅读 · 0 评论 -
六大排序算法
排序1.冒泡排序 冒泡排序是一种极其简单的排序算法,也是我所学的第一个排序算法。它重复地走访过要排序的元素,依次比较相邻两个元素,如果他们的顺序错误就把他们调换过来,直到没有元素再需要交换,排序完成。这个算法的名字由来是因为越小(或越大)的元素会经由交换慢慢“浮”到数列的顶端。 冒泡排序算法的运作如下:比较相邻的元素,如果前一个比后一个大,就把它们两个调换位置。对每一对相...原创 2018-03-20 17:51:37 · 14319 阅读 · 0 评论 -
素数筛
素数筛#include<stdio.h>#include<math.h>#define num 200int a[num+1];int main(){ int i, j; for(i=0;i<=num;i++) a[i]=1; a[0]=a[1]=0; for(i=2;i<=num;i++){ if(a[i]==1){原创 2018-03-18 08:19:19 · 13221 阅读 · 0 评论 -
进程调度算法
进程调度算法在《计算机操作系统》一书中,提到了几种分时系统中的进程调度算法。现在将它们做一下整理1. 轮转调度算法该算法采取了公平的处理机分配方式,即让就绪队列的每个进程每次仅运行一个时间片。如果就绪队列上有n个进程,则每个进程每次大约都可以获得1/n的处理机时间。在该算法中,根据先来先服务(FCFS)策略,将所有的就绪进程排成一个就绪队列,并可设置每隔一定时间间隔产生一次中断...原创 2018-06-16 15:32:25 · 13128 阅读 · 0 评论