![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
动态规划
最优解
@@@龙猫
君子可内敛不可懦弱,面不公可起而论之
展开
-
文本相似度之编辑距离算法
编辑距离1.基本思想:将一个字符转化为另外一个字符所需的最少操作次数,可以是替换字符,插入字符,删除字符,可用与计算两个文本的相似度2.算法的基本原理:对于字符串a[1:i]和字符串b[1:j]来说,用edit[i][j]表示它们间的编辑距离。如果a[i]和b[j]相同,则edit[i][j]=edit[i-1][j-1]。如果a[i]和b[j]不相同,则有如下情况:1)a[1:i]经过多次操作转化为b[1:j-1],然后再在结尾插入字符b[j]即可,edit[i][j]=edit[i][j-1]原创 2022-03-30 17:48:35 · 1130 阅读 · 7 评论 -
算法训练 --- 结点选择(搜索+动态规划)
目录问题描述输入格式输出格式样例输入样例输出样例说明代码实现思考问题描述有一棵 n 个节点的树,树上每个节点都有一个正整数权值。如果一个点被选择了,那么在树上和它相邻的点都不能被选择。求选出的点的权值和最大是多少?输入格式第一行包含一个整数 n 。接下来的一行包含 n 个正整数,第 i 个正整数代表点 i 的权值。接下来一共 n-1 行,每行描述树上的一条边。输出格式输出一个整数,代表选出的点的权值和的最大值。样例输入51 2 3 4 51 21 32 42 5样例输出12原创 2021-03-01 21:56:57 · 189 阅读 · 0 评论 -
算法训练-传球游戏
题目描述上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师再次吹哨子时,传球停止,此时,拿着球没传出去的那个同学就是败者,要给大家表演一个节目。聪明的小蛮提出一个有趣的问题:有多少种不同的传球方法可以使得从小蛮手里开始传的球,传了m次以后,又回到小蛮手里。两种传球的方法被视作不同的方 法,当且仅当这两种方原创 2020-11-10 20:22:25 · 351 阅读 · 0 评论 -
蓝桥——试题 算法训练 K好数
题目描述如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。输入输入包含两个正整数,K和L。输出输出一个整数,表示答案对1000000007取模后的值。输入样例4 2输出样例7数据规模对于30%的数据,KL <= 106;对于50%的数据,K <=原创 2020-10-11 19:10:14 · 259 阅读 · 0 评论 -
蓝桥杯——标题:测试次数
题目描述x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。塔的每一层高度都是一样的,与地球上稍有不同的是,他们的第一层不是地面,而是相当于我们的2楼。如果手机从第7层扔下去没摔坏,但第8层摔坏了,则手机耐摔指数=7。特别地,如果手机从第1层扔下去就坏了,则耐摔指数=0。如果到了塔的最高层第n层扔没摔坏,原创 2020-10-10 20:27:35 · 160 阅读 · 0 评论 -
程序设计与算法(二)-Help Jimmy
题目描述“Help Jimmy” 是在下图所示的场景上完成的游戏:场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当Jimmy落到某个平台上时,游戏者选择让它向左还是向右跑,它跑动的速度也是1米/秒。当Jimmy跑到平台的边缘时,开始继续下落。Jimmy每次下落的高度不能超过MAX米,不然就会摔死,游戏也会结束。设计一个程序,计算Jimmy到底地面时可能的最早时间。输入第一行是测试数据原创 2020-09-29 19:03:42 · 155 阅读 · 0 评论 -
[蓝桥杯][2013年第四届真题]买不到的数目
题目描述小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。输入两个正整数,表示每种包装中糖的颗数(都不多于1000)输出一个正整数,表示最大不能买到的糖数输入样例4 7输出样例原创 2020-09-28 19:54:21 · 249 阅读 · 0 评论 -
程序设计与算法(二)-最佳加法表达式
题目描述给定n个1到9的数字,要求在数字之间摆放m个加号(加号两边必须有数字),使得所得到的加法表达式的值最小,并输出该值。例如,在1234中摆放1个加号,最好的摆法就是12+34,和为36输入有不超过15组数据每组数据两行。第一行是整数m,表示有m个加号要放( 0<=m<=50)第二行是若干个数字。数字总数n不超过50,且 m <= n-1输出对每组数据,输出最小加法表达式的值输入样例21234561123456412345输出样例10257915提原创 2020-09-28 19:05:12 · 642 阅读 · 0 评论 -
[蓝桥杯][2017年第八届真题]包子凑数
题目描述小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子。每种蒸笼都有非常多笼,可以认为是无限笼。每当有顾客想买X个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这若干笼中恰好一共有X个包子。比如一共有3种蒸笼,分别能放3、4和5个包子。当顾客想买11个包子时,大叔就会选2笼3个的再加1笼5个的(也可能选出1笼3个的再加2笼4个的)。当然有时包子大叔无论如何也凑不出顾客想买的数量。比如一共有3种蒸笼,分别能放4、5和6个包子。而顾客想买7个包子时,原创 2020-09-26 19:39:46 · 386 阅读 · 0 评论 -
[蓝桥杯][2013年第四届真题]格子刷油漆
题目描述X国的一段古城墙的顶端可以看成 2*N个格子组成的矩形(如下图所示),现需要把这些格子刷上保护漆。你可以从任意一个格子刷起,刷完一格,可以移动到和它相邻的格子(对角相邻也算数),但不能移动到较远的格子(因为油漆未干不能踩!)比如:a d b c e f 就是合格的刷漆顺序。c e f d a b 是另一种合适的方案。当已知 N 时,求总的方案数。当N较大时,结果会迅速增大,请把结果对 1000000007 (十亿零七) 取模。输入输入数据为一个正整原创 2020-09-23 23:24:28 · 335 阅读 · 0 评论 -
算法提高-摆花
题目描述小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆。通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号。为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时同一种花放在一起,且不同种类的花需按标号的从小到大的顺序依次摆列。 试编程计算,一共有多少种不同的摆花方案。输入输入描述: 第一行包含两个正整数n和m,中间用一个空格隔开。 第二行有n个整数,每两个整数之间用一个空格隔开,依次表示a1、a2、……an。输入样例:2 43 2输出输出描述原创 2020-08-10 17:20:50 · 174 阅读 · 0 评论 -
1145-乌龟棋
题目描述小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。乌龟棋的棋盘是一行 N个格子,每个格子上一个分数(非负整数) 。棋盘第 1 格是唯一的起点,第 N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。乌龟棋中 M 张爬行卡片,分成 4 种不同的类型(M 张卡片中不一定包含所有 4 种类型的卡片,见样例) ,每种类型的卡片上分别标有 1、2、3、4 四个数字之一,表示使用这种卡=片后,乌龟棋子将向前爬行相应的格子数。游戏中,玩家每次需要从所有的爬行卡片中选择一张之前没有使用过的爬行卡片, 控原创 2020-08-09 16:26:57 · 95 阅读 · 1 评论 -
1034-最长公共子序列
题目描述给你一个序列X和另一个序列Z,当Z中的所有元素都在X中存在,并且在X中的下标顺序是严格递增的,那么就把Z叫做X的子序列。例如:Z=<a,b,f,c>是序列X=<a,b,c,f,b,c>的一个子序列,Z中的元素在X中的下标序列为<1,2,4,6>。现给你两个序列X和Y,请问它们的最长公共子序列的长度是多少?输入输入包含多组测试数据。每组输入占一行,为两个字符串,由若干个空格分隔。每个字符串的长度不超过100。输出对于每组输入,输出两个字符串的最长公共子原创 2020-08-08 21:07:41 · 87 阅读 · 0 评论 -
1152-猴子与香蕉
题目描述一组研究人员正在设计一个测试猴子IQ的实验。他们把香蕉吊在屋顶上,同时给猴子提供了砖块。如果猴子够聪明,它会把砖块一个个叠起来做成一个塔,然后爬上去拿到自己喜爱的食物。研究人员有n种不同的砖块,而且每种砖块都是取之不尽的。每种砖块都是长方体,第i种砖块的大小是(xi,yi,zi)。砖块能够翻转,可以将任意两边当作底面,剩下的那边作为高。他们想确定用砖块搭成的最高塔,能否帮助猴子够着屋顶。问题是,在叠塔过程中,要放的那块砖,其底面两条边都要小于下面那块砖的两条边,这是为了留个空间给猴子踩脚。例原创 2020-08-08 17:21:00 · 648 阅读 · 0 评论 -
1148-货币系统
题目描述给你一个n种面值的货币系统,求组成面值为m的货币有多少种方案。样例:设n=3,m=10,要求输入和输出的格式如下:输入第一行两个整数n,m(m<=5000)以下n行,每行一个整数,第i+1行为第i种货币的面值输出一个整数,为方案数输入样例3 10125输出样例10思路用动态规划的思想去做,先画一个二维表,再得出状态方程,...原创 2020-08-08 17:03:37 · 478 阅读 · 0 评论