算法分析与设计
文章平均质量分 53
算法分析与设计笔记
monkeyhlj
计算机专业学员,希望大家一起进步!加油!
Github: https://github.com/monkeyhlj
Gitee: https://gitee.com/monkeyhlj
展开
-
博物馆守卫问题(世界名画展览馆)
世界名画展览馆(博物馆守卫问题)在某博物馆中摆放了非常重要的文物,为了节省人力,该博物馆专门购买了警卫机器人来看管这些文物。该博物馆的房间排列整齐,房间的大小相同。每个警卫机器人能够巡查的范围除本身所在房间外,还包括其起始安放的房间的上下左右四个房间。为了减少摆放的机器人的数量,请你设计一种最佳的摆放方案,使得摆放的机器人数量最少。输入:输入一行,有两个整数m,n,分别表示该博物馆每行的房间数和每列的房间数。博物馆总房间数即为m*n。输出:输出的第一行表示需要的机器人的数量,其后m行,每行有n个元原创 2021-01-21 21:50:32 · 1435 阅读 · 2 评论 -
木材切割问题
木材切割问题一个木匠从木材公司买了一批木材,每块木材的长度均相同,但由于制作家具时所需的木块长度各不相同,因此需要把这些木材切割成长度不同的木块。同时每次切割时由于锯子本身有一定的宽度,因此每切割一次就会浪费掉一些木料。请设计一个程序使木匠能够用最少的木材切割出所需的木块。输入描述:输入有若干个测试样例,每个测试样例占一行。每行由若干个整数构成,第一个整数为所购买的木块的长度L(0<L<=30000),第二个整数为锯子的宽度W(0<W<=1000),其后的若干个整数分别表示制作原创 2021-01-21 21:37:31 · 3961 阅读 · 9 评论 -
LED Display
LED DisplayOne day in the laboratory, Fred found some LED displays. This seven-segment LED can display digit 0 to 9 properly. But Fred soon find the LED have a serious problem, at the beginning, the seven bars were all on. But when one bar once was trun o原创 2021-01-21 21:08:33 · 584 阅读 · 0 评论 -
Gone Fishing
Gone FishingJohn is going on a fishing trip. He has h hours available (1 <= h <= 16), and there are n lakes in the area (2 <= n <= 25) all reachable along a single, one-way road. John starts at lake 1, but he can finish at any lake he wants.原创 2021-01-21 15:27:00 · 124 阅读 · 0 评论 -
大理石分割问题
大理石分割问题有若干块大理石,其大小及美观程度不一,为了比较客观的分割这些大理石,我们需要先给这些大理石一个评分,评分分为6个等级,分别用1~6的数字来表示。现希望将这些大理石分成两部分,使每部分的评分之和相同。输入:输入一行,包括6个数,分别是每个等级的大理石的数量。每种等级的大理石数量不超过20000.输出:如果这些大理石能否分割成评价等级之和相同的两部分,则输出true,否则输出false.样例输入: 1 0 1 2 0 0样例输出: false 方法一:采用二进制原创 2021-01-21 15:06:53 · 308 阅读 · 0 评论 -
跳跃问题(Java)
跳跃问题(Java)某n*n的棋盘的每个格子中都有1到9个整数。从棋盘的左上角出发,向右或向下每次跳跃格子所指定的格数,判断是否能够到达棋盘的右下角。如果能,输出true, 否则输出false.输入:输入第一行为整数n,表示棋盘方格的数量。其后的n行,各行均有n个数字。表示在该方格中可以向下或向右跳跃的方格数。输出:输出1行,true或者false. true表示从左上角可以跳跃到右下角,否则为false。样例输入: 7 2 5 1 6 1 4 1 6 1 1 2 2 9原创 2021-01-21 14:32:32 · 259 阅读 · 0 评论 -
格雷码问题:输出当输入为n时的格雷码
1、写出n=5时的格雷码,要求写出求解过程中变量的变化过程以及求解结果当n=5时,格雷码为:00000 00001 00011 00010 00110 00111 00101 00100 01100 01101 01111 01110 01010 01011 01001 01000 11000 11001 11011 11010 11110 11111 11101 11100 10100 10101 10111 10110 10010 10011 10001 10000当n=5时,需要递归调用n=4时原创 2021-01-21 14:23:42 · 694 阅读 · 1 评论 -
DFS(阅读程序看问题)
#include<stdio.h>#include<stdlib.h>#include<string.h> int n,max,min,sum;int num[10][10]; void move(int m){ int a,i; a=num[m][n]; for(i=n-1;i>=1;i--){ num[m][i+1]=num[m][i]; } num[m][1]=a;}void dfs(int k){原创 2021-01-21 14:17:51 · 261 阅读 · 0 评论 -
平面上有两个圆相交,求两个圆相交部分的面积
平面上有两个圆相交,求两个圆相交部分的面积又学习了一遍算法,感触颇深,也对算法有了更进一步的认识,记录一下这次的学习,希望能帮到有需要的人。输入:六个参数:第一个圆的圆心坐标,半径,第二个圆的圆心坐标,半径。输出:返回相交部分的面积,若不相交,则返回0,并提示两圆无相交。分析:平面上有两个圆相交,求两个圆相交部分的面积,如下图所示。首先,需要判断两个圆是否相交,若不相交,则返回0,若相交,则要求出相交部分的面积,可以用两个扇形的面积减去四边形的面积,其中,两个扇形分别为两个圆心与两个圆相交点所组原创 2021-01-16 16:46:08 · 5301 阅读 · 0 评论 -
动态规划(Dynamic Programming)例题步骤详解
文章目录动态规划(Dynamic Programming)浅学题目特点:1、选择硬币组合问题:(Coin Change)动态规划题四个核心步骤:一、确定状态二、转移方程三、初始条件和边界情况四、计算顺序小结:编程代码:(Java)2、多少种路径问题(Unique Paths)1、确定状态2、转移方程3、初始条件和边界情况4、计算顺序编程代码:(Java)3、Jump Game1、确定状态2、转移方程3、初始条件和边界情况4、计算顺序编程代码:(Java)总结动态规划(Dynamic Programming原创 2020-08-22 18:31:49 · 717 阅读 · 0 评论