![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法设计与分析
童 话
这个作者很懒,什么都没留下…
展开
-
01背包问题(动态规划)
01背包问题描述:有编号分别为a,b,c,d,e的五件物品,它们的重量分别是2,2,6,5,4,它们的价值分别是6,3,5,4,6,每件物品数量只有一个,现在给你个承重为10的背包,如何让背包里装入的物品具有最大的价值总和? 害,一遇到动态规划就gg 解题思路及代码: /* 01背包问题 设f[i][j]表示把i件物品放入承重为j的背包中具有的最大的价值总和 weigh[i]表示第i...原创 2020-03-23 14:54:36 · 837 阅读 · 0 评论 -
东华oj-进阶题第45题-等差数列
45 等差数列 作者: xxx时间限制: 1S章节: 一维数组 问题描述 : 一个等差数列是一个能表示成a, a+b, a+2b,…, a+nb (n=0,1,2,3,…) 在这个问题中a是一个非负的整数,b是正整数。 写一个程序来找出在双平方数集合S中长度为n的等差数列。双平方数集合是所有能表示成p2+q2的数的集合。 输入说明 : 第一行: N(3<= N<=25),要找的...原创 2020-03-07 15:19:53 · 735 阅读 · 0 评论 -
求最长不降子序列(动态规划)
/* 求最长不下降子序列(动态规划) 状态转移方程: length[i]=1+length[j],j为data[i]>data[j]的情况下能使length[j]取到最大的值 初始情况length[1]=1; 且length[0]=0,这样求出来的length[j]才可以取到0 */ #include<stdio.h> int data[15] = {-1, 13, 7, 9, ...原创 2020-03-04 20:48:38 · 377 阅读 · 0 评论 -
大数乘法C语言实现
引入 今天在东华oj刷题的时候遇到了大数阶乘,需要用到大数乘法。说来大数乘法以前上算法课的时候学过,不过现在已经忘了…… 重新学了下,虽然原理看懂了,但是因为这里面细节太多,防不胜防(加上我比较菜),程序写出来之后调试了很久才得出正确答案。 原理 大数乘法的原理说白了就是利用了手动乘法的计算过程。我们手工做乘法的时候(假设A * B),从A的最后一位开始依次乘以B的每一位取余写下,有进位的时候记下...原创 2020-02-21 23:06:46 · 429 阅读 · 0 评论 -
八皇后问题
/* 八皇后问题:要在一个8*8的国际象棋几盘中放8个皇后, 使任意两个皇后都不能互相吃掉。规则是 皇后能吃掉偶同一行、同一列、统一对角 线的任意棋子,求所有的解 */ #include<iostream> #include<stdio.h> using namespace std; int a[21]; int n = 16; bool...原创 2018-12-11 21:08:20 · 212 阅读 · 0 评论 -
利用图的深度优先搜索解决迷宫问题
总体思路是:从(1,1)出发,分四个方向深度优先搜索,将访问过的点的访问标志置为3,如果从当前点出发无法找到出口,则将该点的访问标志置为2。输出结果是如果标志为3的就输出L,其他标志的就输出2,这样就能很清楚的看到从入口到出口的路径了 完整代码如下: /* 利用图的深度优先搜索解决迷宫问题 */ #define N 10 int maze[N][N] = {{0}, {0, 0, 0, 0,...原创 2018-12-07 15:37:26 · 3371 阅读 · 0 评论 -
利用图的广度优先遍历解决城市最短路径问题
首先说明,这里的最短路是指经过的城市最少 代码如下: /* 广度优先遍历的应用:在城市地图中求一条 一个城市到另一个城市的经过最少城市的路径 */ #include<iostream> using namespace std; #define N 10 int cityMap[N][N] = {{0}, {0, 0, 1, 1, 1, 0, 1, 0, 0} , {0,...原创 2018-12-05 17:32:04 · 1521 阅读 · 0 评论 -
利用隐式图的广度优先搜索算法解决迷宫问题
今天下午被一个迷宫问题搞懵了,想了许久才解决 首先有必要说明 隐式图:我们都知道一般的图具有明确的顶点和边,可以用邻接矩阵或者邻接表表示出来。但是实际应用中抽象出来的图往往根本没有顶点和边,这样的图就叫隐式图 迷宫问题: 用(1,1)代表迷宫入口,(4,4)代表迷宫出口,0代表有路可走,1代表墙壁,无法穿过,求入口到出口的一条路径。 问题分析:可以将迷宫抽象成一个图,把找路径的过程看成图的广度优...原创 2018-12-05 17:25:44 · 786 阅读 · 0 评论 -
矩阵连乘问题
/* 矩阵连乘问题:求n个矩阵想乘至少需要进行多少次乘法 动态规划解决矩阵连乘问题 minMulTimes[i][j] = min{minMulTimes[i][k] + minMulTimes[k + 1][j] + columnNums[i - 1] * columnNums[k] * columnNums[j]} 这里i <= k < j */ ...原创 2018-12-02 21:54:31 · 262 阅读 · 0 评论 -
图的深度优先、广度优先遍历(简要实现)
/* 显式图的深度优先、广度优先遍历 */ #include<iostream> using namespace std; #define N 10 int edge[N][N] = {{0}, {0, 0, 1, 0, 1}, {0, 1, 0, 0, 0}, {0, 0, 0, 0, 1}, {0, 1, 0, 1, 0}};// 图 int vertexN...原创 2018-12-04 21:13:14 · 225 阅读 · 0 评论