
算法分析与设计
文章平均质量分 78
HNUCM
StarAndroid
这个作者很懒,什么都没留下…
展开
-
『动态规划』矩阵连乘
完全加括号的矩阵连乘积可递归地定义为:- 单个矩阵是完全加括号的- 矩阵连乘积A是完全加括号的,则A可表示为2个完全加括号的矩阵连乘积B和C 的乘积并加括号,即A=(BC)设有四个矩阵A, B, C, D ,它们的维数分别是:`A = 50*10` `B = 10*40` `C = 40*30` `D = 30*5` ...原创 2022-08-16 06:30:00 · 3626 阅读 · 28 评论 -
『动态规划』动态规划概述
1.动态规划创始人2.定义3.总体思想4.基本要素最优子结构重叠子问题5.备忘录法(记忆化搜索)6.斐波那契数列(备忘录法)7.数字三角形经典递归解法记忆化搜索(备忘录法)动态规划法(T(n)=O(n^2^))动态规划是将多阶段决策问题进行公式化的一种技术,它是运筹学的一个分支, 用于求解多阶段决策过程的最优化问题动态规划方程又称为贝尔曼方程。...原创 2022-08-13 06:30:00 · 2231 阅读 · 37 评论 -
『递归』整数划分
`q(n,m)`我们定义为**将n的最大加数不大于m的划分个数记作`q(n,m)`**注意:3+2与2+3是同一种划分根据n和m的关系,考虑一下几种情况:(一)当n==1时,无论m的值为多少 ,只有一种划分,即{1}(二)当m==1 时,无论n的值为多少,只有一种划分,即1个n,{n} 。(三)当n==m时,根据划分中是否包含n,可以分为以下两种情况:(1)划分中包含n的情况,只有一个,即 {n}(2)划分中不包含n的情况,这时划分中最大的数字也例如,当n=5时,有7个划分,即原创 2022-08-11 06:30:00 · 1067 阅读 · 7 评论 -
『递归』递归概念与典型实例
在调用一个函数的过程中又出现直接或间接调用该函数本身,称为函数的递 归(Recursion)调用,这种函数称为递归函数若p函数定义中调用p函数,称之为直接递归若p函数定义中调用q函数,而q函数定义中又调用p函数,称之为间接递归。...原创 2022-08-04 21:11:40 · 1118 阅读 · 4 评论 -
『递归』递归概念与典型实例
在调用一个函数的过程中又出现直接或间接调用该函数本身,称为函数的递 归(Recursion)调用,这种函数称为递归函数若p函数定义中调用p函数,称之为直接递归若p函数定义中调用q函数,而q函数定义中又调用p函数,称之为间接递归。...原创 2022-08-04 06:30:00 · 2110 阅读 · 29 评论 -
『算法导论』什么是算法?什么是程序?
1.什么是算法2.“算法”的来源3.什么是程序4.三种常用的描述算法的形式5.算法的好与坏6.算法复杂性的渐近性态7.时间复杂性渐进表示法8.常见的算法复杂度的大O阶算法(Algorithm)是指解决问题的方法或过程,它包含一系列步骤,用来将输入数据转换成输出结果算法具有以下性质输入有零个或多个输入输出至少有一个输出确定性组成算法的每条指令清晰、无歧义有限性算法中每条指令的执行次数有限,执行每条指令的时间也有限程序(Program)是算法用某种程序设计语言的具体实现。...原创 2022-08-02 06:30:00 · 3226 阅读 · 10 评论 -
贪心算法:最小生成树Prim算法
这是大一暑假的c笔记,再一次写prim算法笔记又有一点点进步最小生成树(Prim普利姆算法和Kruskal算法)原创 2022-05-31 07:30:00 · 6970 阅读 · 60 评论 -
【动态规划】多重背包问题
这篇文章比较粗糙,因为是面向掌握了01背包问题的读者,如若没有此基础请看上期文章;对于有01背包问题基础的读者肯定一看就懂原创 2022-05-17 08:00:00 · 1141 阅读 · 28 评论 -
【动态规划】01背包问题
【动态规划】01背包问题原创 2022-05-16 07:45:00 · 6386 阅读 · 30 评论 -
『动态规划』最长上升子序列
给出一串正整数,如下能找到最长的单调递增的子序列为2. 动态规划法2.1 设计思路设b[i]是在a[i]为单调递增子序列最后一个元素时,所得最长单调递增子序列 的长度为:思路:最长递增子序列空间复杂度:S(n)2.4 算法优化2.4.1 优化分析内层循环所作的操作是在区间找到比小且状态值最大的数,就是一个查找的过程,我们所熟知的二分查找的效率是,可不可以用二分来优化这个内层循环呢?维护两个数组我们所要做的操作就是依次遍历序列中后续元素,更新两个数组分析这么多其实理解了就是两行话老师的ppt绕原创 2022-05-08 09:45:00 · 3166 阅读 · 24 评论 -
『动态规划』最大子段和
对所有的对,顺序求和并比较出最大的和算法改进动态规划法b[j]=max(b[j-1]+a[j], a[j]),1原创 2022-05-07 08:14:35 · 6801 阅读 · 22 评论 -
【分治】二分搜索
🍀【分治】二分搜索原创 2022-04-09 22:56:23 · 1083 阅读 · 0 评论 -
【排序】经典排序(待更ing)
【排序】经典排序(待更ing)原创 2022-04-01 12:10:15 · 957 阅读 · 2 评论 -
【递归】汉诺塔和全排列
【递归】汉诺塔问题与全排列问题原创 2022-03-17 14:49:43 · 502 阅读 · 2 评论 -
『递归』递归的典型例题
程序调用自身的编程技巧称为递归( recursion)。构成递归需具备的条件:递归算法一般用于解决三类问题:递归的缺点:递归算法解题相对常用的算法如普通循环等,运行效率较低。因此,应该尽量避免使用递归,除非没有更好的算法或者某种特定情况,递归更为适合的时候。在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等。题目描述输入输出样例输入样例输出Java题解题目说要用递归,但是我们可以先用习惯的思路的做一做,那就是循环;如何将其改为递归呢,可以做如下比较这么一看原创 2022-03-09 20:34:59 · 4481 阅读 · 9 评论 -
『天梯赛』Java中常见的方法(持续更新中ing)
取最大值、最小值开平方取次幂🍁String类声明(创建)一个Stringint转String常用到的方法🌳StringBuffer类反转字符串🌻Integer类反转整数(一般不用)要反转整数,可以先转成字符串,再用字符串反转的方法数制转换String转int字符串转整数第一个大家可能都比较熟悉,将一个字符串转换为十进制整数那么重载的第二个方法怎么用呢?第一个参数的意义是:指定要转换成的整数的基数,比如第二个数指定为...原创 2022-03-01 23:13:48 · 998 阅读 · 1 评论 -
【天梯赛】 零基础刷题(天梯赛备赛热身赛)(Java题解)
[天梯赛] 零基础刷题(天梯赛备赛热身赛)(Java题解)问题 A: 海底沉船题目描述输入输出样例输入样例输出Java问题 B: 粗心的小表弟题目描述输入输出样例输入样例输出Java问题 C: 十六进制题目描述输入输出样例输入样例输出Java问题 D: 平行四边形题目描述输入输出样例输入样例输出Java问题 E: 临时换人题目描述输入输出样例输入样例输出Java问题 F: 第n个数题目描述输入输出样例输入样例输出Java问题 A: 海底沉船题目描述X星人在一艘海底沉船上发现了很多很多很多金币,可爱的X原创 2022-02-27 23:58:24 · 2995 阅读 · 2 评论 -
【天梯赛】零基础刷题(天梯赛备赛热身赛)(C++/Java题解)
零基础刷题(天梯赛备赛热身赛)(C++/Java题解)问题 A: I love HNUCM题目描述输入输出样例输入样例输出C/C++Java问题 B: 计算球体积题目描述输入输出样例输入样例输出提示C/C++Java问题 C: 成绩转换题目描述输入输出样例输入样例输出C/C++Java问题 D: 求奇数的乘积题目描述输入输出样例输入样例输出C/C++Java问题 E: 平方和与立方和题目描述输入输出样例输入样例输出C/C++Java问题 F: 水仙花数题目描述输入输出样例输入样例输出C/C++Java问题原创 2022-02-22 20:31:31 · 2144 阅读 · 0 评论 -
在学校的的判题系统(HNUCM-OJ)提交Java总运行错误解决办法
前言近几天打算通过写题学习Java,先用c/c++把题目写出来,再尝试用Java写一遍,这样即学习了Java的语法规则,也比较了c/c++和Java在语法上的同异,结果写了到hello world在eclipse上没一点毛病,在判题系统上一直运行错误,故写下了这篇文章,希望能帮到大家。注意事项解决方案提交答案时不要包括包名package.xxx主函数类名统一用Main(没错是大写),不要用其他的名字例如像这样:public class Main{ public static vo原创 2021-09-24 20:11:49 · 1155 阅读 · 0 评论 -
第三届全国中医药院校大学生程序设计竞赛
1365: Welcomestring类的初始化#include<iostream>#include<string>using namespace std;string p[5] = { "o...o.o...o.o...o.ooooo.o...o", "o...o.oo..o.o...o.o.....oo.oo", "ooooo.o.o.o.o...o.o.....o.o.o", "o...o.o..oo.o...o.o.....o...o", "o..原创 2021-09-23 15:01:55 · 368 阅读 · 0 评论 -
HNUCM-OJ 1294: 畅通工程(BFS、并查集)
1294: 畅通工程题目描述某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?输入测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000)和道路数目M;随后的M行对应M条道路,每行给出一对正整数,分别是该条道路直接连通的两个城镇的编号。为简单起见,城镇从1到N编号。注原创 2021-09-11 20:38:25 · 208 阅读 · 0 评论 -
HNUCM-OJ 1282: 连通图 (并查集与BFS)
1282: 连通图题目描述给定一个无向图和其中的所有边,判断这个图是否所有顶点都是连通的。输入每组数据的第一行是两个整数 n 和 m(0<=n<=1000)。n 表示图的顶点数目,m 表示图中边的数目。如果 n 为 0表示输入结束。随后有 m 行数据,每行有两个值 x 和 y(0<x, y <=n),表示顶点 x 和 y 相连,顶点的编号从 1开始计算。输入不保证这些边是否重复。输出对于每组输入数据,如果所有顶点都是连通的,输出"YES",否则输出"NO"。原创 2021-09-07 17:54:52 · 285 阅读 · 0 评论 -
HNUCM-OJ 1281: 二叉树
题目 1731: 二叉树原题地址题目描述如上所示,由正整数1,2,3……组成了一颗特殊二叉树。我们已知这个二叉树的最后一个结点是n。现在的问题是,结点m所在的子树中一共包括多少个结点。比如,n = 12,m = 3那么上图中的结点13,14,15以及后面的结点都是不存在的,结点m所在子树中包括的结点有3,6,7,12,因此结点m的所在子树中共有4个结点。输入输入数据包括多行,每行给出一组测试数据,包括两个整数m,n (1 <= m <= n <=1000000000)。原创 2021-09-02 16:21:13 · 235 阅读 · 0 评论 -
谁是你的潜在朋友(哈希表)and还是畅通工程(最小生成树)
臭味相投”——这是我们描述朋友时喜欢用的词汇。两个人是朋友通常意味着他们存在着许多共同的兴趣。然而作为一个宅男,你发现自己与他人相互了解的机会> 并不太多。幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友。...原创 2021-08-31 11:36:40 · 3179 阅读 · 0 评论 -
最小生成树(Prim普利姆算法和Kruskal算法)
最小生成树(prim普利姆算法)例题 原题链接题目 1705: 数据结构-最小生成树题目描述无输入输入的第一行包含一个正整数n,表示图中共有n个顶点。其中n不超过50。以后的n行中每行有n个用空格隔开的整数,对于第i行的第j个整数,如果不为0,则表示第i个顶点和第j个顶点有直接连接且代价为相应的值,0表示没有直接连接。当i和j相等的时候,保证对应的整数为0。输入保证邻接矩阵为对称矩阵,即输入的图一定是无向图,且保证图中只有一个连通分量。输出只有一个整数,即最小生成树的总代价。请原创 2021-08-29 14:09:18 · 539 阅读 · 0 评论 -
HNUCM-OJ T1962 C语言 简单数列
标题HNUCM-OJ T1962 C语言 简单数列题目描述仔细观察下面的数列:输入n,输出该数列第n项的值。输入一个整数()输出一个整数,表示数列第n项的值样例输入 Copy2样例输出 Copy1提示答案可能很大,注意精度1.这个题首先是要找规律,更多的考察数学里的观察能力不难发现9=1* 1+2* 1+3* 232=1* 1+2* 2+3* 9116=1* 2+2 * 9+3*32……即数列的第n位(n>3)就等于数列前三项分别乘1乘2乘3后相加2.找到原创 2021-03-23 15:54:36 · 382 阅读 · 0 评论 -
HNUCM-OJ T1953 C语言 回文日期串
标题HNUCM-OJ T1001 C语言 回文日期串注:如有错误和缺陷,欢迎批评指正题目描述回文日期串是指一个由年(由四个字符组成)、月(由两个字符组成)、日(由两个字符组成)组成的八位字符串,同时它又是一个回文串。一个合法的回文日期串需要保证逆序后其年、月、日也必须是合法的。例如:20011002和20200202是合法的回文日期串,而20088002和20000002则不是合法的回文日期串。请输入一个起始日期和一个结束日期,统计两个日期之间(包括起始日期和结束日期)有多少个合法的回文日期串?原创 2021-03-09 16:54:45 · 506 阅读 · 0 评论 -
HNUCM-OJ T1001 C语言 弟弟的作业
HNUCM-OJ T1001 C语言 弟弟的作业你的弟弟刚做完了“100以内数的加减法”这部分的作业,请你帮他检查一下。每道题目(包括弟弟的答案)的格式为a+b=c或者a-b=c,其中a和b是作业中给出的,均为不超过100的非负整数;c是弟弟算出的答案,可能是不超过200的非负整数,也可能是单个字符"?",表示他不会算。输入输入文件包含不超过100行,以文件结束符结尾。每行包含一道题目,格式保证符合上述规定,且不包含任何空白字符。输入的所有整数均不含前导0。输出输出仅一行,包含一个非负整数,即弟弟原创 2021-03-04 21:50:06 · 710 阅读 · 3 评论 -
HNUCM-OJ T1000 C语言 汽水瓶
标题HNUCM-OJ T1000 c语言 汽水瓶注:如有错误,欢迎批评指正题目描述有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?输入输入文件最多包含10组测试数据,每个原创 2021-03-02 22:21:44 · 241 阅读 · 1 评论