Want595
公众号:Want595
热销专栏:《Python趣味编程》
商务合作:请站内私信或文末添加微信
展开
-
《算法设计与分析》专栏简介
欢迎订阅《算法分析与设计》专栏!本专栏主要分为两大部分:① 近百道算法实验 ② 算法设计综合训练原创 2023-04-10 11:21:46 · 386 阅读 · 2 评论 -
课前测1-输入练习
【问题描述】任务很简单:给定若干个整数,请编程输出它们的和。【输入形式】输入包含多组测试用例。每组测试数据首先是一个正整数N,表示本组数据有N个整数。请处理到文件结束。【输出形式】请计算每组数据的和,每组输出占一行。【样例输入】4 1 3 4 9 5 10 2 30 4 50【样例输出】17 96原创 2023-04-10 14:32:13 · 1022 阅读 · 1 评论 -
课前测2-丑数
【问题描述】丑数的定义是这样的——一个数,如果它分解后的素因子最多只有2、3、5、7四种,这个数则称为“丑数”。比如,前20个丑数是:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27。现在你的任务是:给你一个数,你能判断是否是丑数吗?【输入形式】输入数据的第一行首先是一个整数C,表示测试数据的个数,然后是C组数据,每组测试数据包含一个整数n(1原创 2023-04-11 07:14:24 · 1758 阅读 · 0 评论 -
课前测3-字符三角形
【问题描述】我们学习了编程,通过对程序的控制,可以做一些有趣的输出。比如,这个题目就是给定一个正整数N,请你输出一个由N行的*组成的三角形。但是——为了图形的美观,我们希望输出的是一个等腰三角形!具体规则如下:第一行是1个*第二行是3个*第三行是5个*......依次类推,一直到第N行(第N行的开始没有空格)。原创 2023-04-11 07:17:12 · 880 阅读 · 0 评论 -
课前测4-奋勇争先
【问题描述】在丁爸信奥培训班中,每一次的作业,大家都奋勇争先,想拿下第一名。现在已知某次测验的每位同学的解题数量和罚时,希望你能够告诉老师谁是第一名。注:首先依据解题数量从大到小排名,若解题数量相同,则比较罚时,罚时少的排名靠前。【输入形式】第一行是数据组数C,代表有C组测试实例。每一组数据第一行为一个N,代表下面有N个人的成绩。接下来N行,每一行依次给出名字Name,解题数量num和罚时time原创 2023-04-11 07:17:25 · 1313 阅读 · 0 评论 -
课前测5-超级密码
【问题描述】上次设计的“高级密码”被你们破解了,一丁小朋友很不服气!现在,他又设计了一套更加复杂的密码,称之为“超级密码”。说实话,这套所谓的“超级密码”其实也并不难:对于一个给定的字符串,你只要提取其中的数字,然后连在一起构成一个整数,再乘以刘一丁小朋友的幸运数字513,就是解密后的结果了~比如,字符串“ads2d4,122”,提取后的整数是24122,然后乘以513,就能得到解密后的结果:12374586。注:题目保证解密后的结果在32位无符号整数范围。原创 2023-04-11 07:14:57 · 1950 阅读 · 0 评论 -
查找-问题
【问题描述】输入数组长度 n 输入数组 a[1...n] 输入查找个数m 输入查找数字b[1...m] 输出 YES or NO 查找有则YES 否则NO 。【输入形式】输入有多组数据。每组输入n,然后输入n个整数,再输入m,然后再输入m个整数。【输出形式】如果在n个数组中输出YES否则输出NO。【样例输入】63 2 5 4 7 823 6【样例输出】YESNO原创 2023-06-11 10:49:58 · 519 阅读 · 1 评论 -
阿杰取数字
【问题描述】阿杰想从1,2,3,...,m中取出n个数,请你帮阿杰将取出的n个数的组合按照字典顺序列出。【输入形式】输入两个正整数m,n【输出形式】按照字典顺序输出所有可能的组合【样例输入】3 2【样例输出】1 21 32 3原创 2023-06-11 10:44:11 · 659 阅读 · 0 评论 -
递推(饼干问题)
【问题描述】阿杰特别喜欢吃重庆的合川饼干,他网购了若干块饼干,每天吃现有饼干数的一半多一个,到第n天时只剩下一块饼干,求阿杰最初买了多少块饼干?【输入形式】输入多组数据,每组占一行,包含一个正整数n,表示只剩下一块饼干的时候是在第n天发生的。以0结束。【输出形式】对于每组输入数据,输出第一天开始吃的时候桃子的总数,每个测试实例占一行。【样例输入】2 40【样例输出】422原创 2023-06-11 10:38:52 · 948 阅读 · 0 评论 -
求阶乘问题
【问题描述】阿杰最近想练练数学计算题目,他自己在纸上写出一个正的整数n,想计算出n!,大家和他一起算算。【输入形式】一个正整数n 【输出形式】输出 n!【样例输入】4【样例输出】24【样例说明】4!==24原创 2023-06-11 10:35:50 · 982 阅读 · 0 评论 -
快速排序问题
【问题描述】对待排序序列使用快速排序算法进行排序,计算第一次划分之后分界元素在序列中的位置和最终排序结果(划分和分界元素的概念参照课本)(在序列中的位置跟书上一致,从1而不是从0开始)【输入形式】序列元素个数,序列【输出形式】第一次划分之后分界元素的位置,最终排序结果【样例输入】5 0 2 1 -1 -2【样例输出】3 -2 -1 0 1 2【样例说明】序列中的元素均为整数原创 2023-06-11 10:30:34 · 710 阅读 · 0 评论 -
选择排序问题
【问题描述】使用选择排序法,对输入数组进行排序【输入形式】整型数组A【输出形式】排序后的数组【样例输入】2 4 6 8 3 8 5 9【样例输出】2 3 4 5 6 8 8 9【样例说明】输入数组空格分开,输出从小打到,数字之间空格分开【评分标准】必须使用选择排序,其他方法不能得分。原创 2023-06-11 10:21:46 · 634 阅读 · 0 评论 -
十进制到八进制的转换
【问题描述】对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数【输入形式】非负十进制整数【输出形式】相应十进制整数转换后的八进制正整数,若输入不符合要求,提示错误,重新输入【样例输入】5548【样例输出】12654【样例说明】先判断输入是否符合非负正整数要求原创 2023-06-11 10:27:25 · 1291 阅读 · 0 评论 -
算法设计与分析(填空专题)
n 编号的人,按编号顺序围成一圈,从 1 号开始报数,每数到 2 就淘汰一人,问最后被淘汰的人是几号呢?按照顶点标签的数字顺序给出顶点第一次被访问到(压入遍历栈)的顺序是 1357624,则这些顶点变为终点(出栈)的顺序是。某算法的计算时间 T(n) 满足递推关系式:T(n)=T(n/2)+n,n>1;对于输入 30,20,56,75,31,19 的散列函数 h(k)=k mod 11。用自底向上算法为列表1,8,3,6,5,4构造一个大根堆。用自底向上算法为列表1,2,3,4,5构造一个大根堆。原创 2023-06-08 14:53:44 · 2071 阅读 · 0 评论 -
算法设计与分析(选择专题)
考虑如下 0-1 背包问题实例:n=6,M=13,P(1:6)=(30,60,20,27,40,8),W(1:6)=(2,5,2,3,5,2)。对序列 {15, 9, 7, 8, 20, -1, 4} 进行排序,进行一趟后数据的排序变为 {4, 9, -1, 8 ,20, 7, 15},则采用的是(给出一组关键字序列 {12,2,16,30,8,28,4,10,20,6,18},当用希尔排序(第一趟增量为 5)从小到大进行排序第一趟结束时的序列为(数组 A=[2,4,5,3,1] 中的逆序对个数为(原创 2023-06-04 14:57:26 · 835 阅读 · 6 评论 -
棋盘覆盖问题
【问题描述】在一个2k x 2k ( 即:2^k x 2^k )个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。【输入形式】 输入文件第一行为整数k,(棋盘大小是2k*2k 1原创 2023-05-24 15:27:59 · 949 阅读 · 0 评论 -
减治法生成格雷码
【问题描述】在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码或反射码。对于n=3时,可以得到000,001,011,010,110,111,101,100的格雷码,当n=4的时候可以在3的基础上利用减治法生产格雷码,产生的方法就是,从左到右最高位填0,然后在从右到左最高位填1原创 2023-05-10 20:08:10 · 853 阅读 · 0 评论 -
生成排列用JT算法
【问题描述】给定正整数n生成1到n的全排列(利用Johnson Trotter算法)【输入形式】一个整数n【输出形式】n!行,每一行的第一个数是第几个全排列,第二个数是全排列打印(中间用制表符\t分开)。原创 2023-05-10 15:01:36 · 763 阅读 · 1 评论 -
以字典序产生排列
【问题描述】给定正整数n生成1到n的全排列【输入形式】一个整数n【输出形式】n!行,每一行的第一个数是第几个全排列,第二个数是全排列打印(中间用制表符\t分开);原创 2023-05-10 15:00:09 · 977 阅读 · 0 评论 -
计数排序问题
【问题描述】有N个整数,用计数排序法排序【输入形式】N个整数【输出形式】N个整数【样例输入】102 1 4 2 3 3 3 2 9 5【样例输出】1 2 2 2 3 3 3 4 5 9原创 2023-04-19 09:45:11 · 690 阅读 · 6 评论 -
Horspool算法
【问题描述】应用Horspool,考虑在一个由英文字母和空格(用下划线表示空格)构成的文本中查找模式【输入形式】一个文本和一个模式【输出形式】匹配的起始位置或-1【样例输入1】ABABBABBBABB【样例输出1】2【样例输入2】ABABBABBBABC【样例输出2】-1原创 2023-04-19 09:41:39 · 685 阅读 · 1 评论 -
统计个数问题
【问题描述】有n个数、每个元素取值在1到9之间,试统计每个数的个数【输入形式】第一行,n的值;第二行,n个1-9之间的整数【输出形式】每个数的个数【样例输入】52 5 2 1 4【样例输出】1 12 23 04 15 16 07 08 09 0原创 2023-04-19 09:38:19 · 608 阅读 · 0 评论 -
八皇后问题
【问题描述】会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。对于某个满足要求的8皇后的摆放方法,定义一个皇后串a与之对应,即a=b1b2...b8,其中bi为相应摆法中第i行皇后所处的列数。已经知道8皇后问题一共有92组解(即92个不同的皇后串)。给出一个数b,要求输出第b个串。串的比较是这样的:皇后串x置于皇后串y之前,当且仅当将x视为整数时比y小。原创 2023-06-11 09:50:37 · 880 阅读 · 0 评论 -
求a的n次幂
【问题描述】要求利用书上介绍的从左至右二进制幂算法求a的n次幂;【输入形式】输入两个正整数,一个是a,一个是n,中间用空格分开【输出形式】输出一个整数【样例输入】2 10【样例输出】1024【样例输入】3 4【样例输出】81原创 2023-04-19 09:33:55 · 923 阅读 · 0 评论 -
堆排序问题
堆排序是一种利用堆结构进行排序的方法,它只需要一个记录大小的辅助空间,每个待排序的记录仅需要占用一个存储空间。首先建立小根堆或大根堆,然后通过利用堆的性质即堆顶的元素是最小或最大值,从而依次得出每一个元素的位置。堆排序的算法可以描述如下:在本题中,读入一串整数,将其使用以上描述的堆排序的方法从小到大排序,并输出。【输入形式】输入的第一行包含1个正整数n,表示共有n个整数需要参与排序。其中n不超过100000。第二行包含n个用空格隔开的正整数,表示n个需要排序的整数。原创 2023-04-19 09:29:20 · 656 阅读 · 0 评论 -
采用自底向上的方法构造大根堆
【问题描述】用自底向上算法为一组整数构造一个大根堆。【输入形式】第一行输入一个不为0的整数n,第二行输入需要构造堆的n个整数;【输出形式】创建好的大根堆;【样例输入】62 9 7 6 5 8【样例输出】9 6 8 2 5 7原创 2023-04-19 09:25:42 · 723 阅读 · 0 评论 -
霍纳法则(Horner‘s rule)
【问题描述】用霍纳法则求一个多项式在一个给定点的值【输入形式】输入三行,第一行是一个整数n,表示的是多项式的最高次数;第二行多项式的系数组P[0...n](从低到高存储);第三行是一个整数数字x;【输出形式】多项式在x点的值。【样例输入】4-5 1 3 -1 23【样例输出】160【样例说明】求多项式p(x)=2x^4-x^3+3x^2+x-5在x=3点的值为160;【评分标准】必须用霍纳法则(不用考虑整数越界问题) ,其他方法不得分。原创 2023-04-19 09:21:59 · 896 阅读 · 1 评论 -
求二叉树的先序遍历
【问题描述】已知一棵二叉树的中序遍历和后序遍历,求二叉树的先序遍历【输入形式】 输入数据有多组,第一行是一个整数t,代表有t组测试数据。每组包括两个长度小于50 的字符串,第一个字符串表示二叉树的中序遍历序列,第二个字符串表示二叉树的后序遍历序列。【输出形式】输出二叉树的先序遍历序列【样例输入】2dbgeafcdgebfcalnixulinux【样例输出】abdegcfxnliu原创 2023-04-18 13:15:07 · 642 阅读 · 0 评论 -
合并排序问题
【问题描述】利用合并排序算法对一个具有n个整数元素的数组进行排序;【输入形式】输入两行,第一行为一个整数n,第二行为n个数组元素,n个元素中间用空格隔开。【输出形式】输出一行,排好序的数组(元素之间用一个空格隔开)。【样例输入】88 9 0 1 2 5 4 3【样例输出】0 1 2 3 4 5 8 9原创 2023-04-18 13:09:49 · 973 阅读 · 0 评论 -
分治方法求数组的和
【问题描述】利用分治算法对一个具有n个整数元素的数组元素求和;【输入形式】输入两行,第一行为一个整数n,第二行为n个数组元素,n个元素中间用空格隔开。【输出形式】输出一个整数。【样例输入】88 9 0 1 2 5 4 3【样例输出】32原创 2023-04-18 13:07:02 · 536 阅读 · 0 评论 -
寻找中位数(利用快速排序来寻找中位数)
【问题描述】>FJ is surveying his herd to find the most average cow. He wants to know how much milk this 'median' cow gives: half of the cows give as much or more than the median; half give as much or less.Given an odd number of cows N (1原创 2023-04-18 13:00:20 · 429 阅读 · 0 评论 -
利用分治算法求数组的最大元素和最小元素
【问题描述】利用分治算法求一个n运算数组的最大元素和最小元素【输入形式】输入两行,第一行为一个整数n,第二行为数组的n个元素;【输出形式】输出两个数,一个是数组最大元素的值,一个是数组最小元素的值,中间用空格隔开【样例输入】88 3 2 9 7 1 5 4【样例输出】9 1【样例说明】数组中有8个元素,最大值为9,最小值为1原创 2023-04-18 12:57:00 · 2191 阅读 · 0 评论 -
逆序对(deseq)
【问题描述】给定一个序列a1,a2,…,an,如果存在i小于j并且ai大于aj,那么我们称之为逆序对,求逆序对的数目【输入形式】第一行为n,表示序列长度,接下来的n行,第i+1行表示序列中的第i个数。【输出形式】所有逆序对总数【样例输入】43232【样例输出】3数据范围:N原创 2023-04-18 12:53:39 · 1311 阅读 · 0 评论 -
求倒置数问题
【问题描述】数组A【0,...,n-1】是一个n个不同整数数构成的数组。如果i小于j,但是A[i]大于A[j],则这对元素(A[i],A[j])被称为一个倒置(inversion)。设计一个O(nlogn)算法来计算数组中的倒置数量【输入形式】输入两行,第一行输入元素的个数n,第二行输入n个数据(中间用一个空格隔开);【输出形式】输出一个整数,即逆置数的个数;【样例输入1】82 3 8 9 1 4 5 7【样例输出1】10【样例输入2】221 7【样例输出2】1原创 2023-04-18 12:49:28 · 986 阅读 · 0 评论 -
找零问题-最少硬币
【问题描述】给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。(你可以认为硬币的数量是无限的)【输入形式】不同的面额的硬币,一个总金额【输出形式】最少的硬币个数【样例输入1】coins = [1, 2, 5], amount = 11【样例输出1】3【样例输入2】coins = [2], amount = 3【样例输出2】-1原创 2023-04-18 12:43:04 · 965 阅读 · 0 评论 -
Tiling_easy version
【问题描述】有一个大小是 2 x n 的网格,现在需要用2种规格的骨牌铺满,骨牌规格分别是 2 x 1 和 2 x 2,请计算一共有多少种铺设的方法。【输入形式】输入的第一行包含一个正整数T,表示一共有 T组数据,接着是T行数据,每行包含一个正整数N,表示网格的大小是2行N列。【输出形式】输出一共有多少种铺设的方法,每组数据的输出占一行。【样例输入】32812【样例输出】31712731原创 2023-04-18 11:54:12 · 688 阅读 · 0 评论 -
一只小蜜蜂
【问题描述】有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。 其中,蜂房的结构如下所示。【输入形式】输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0原创 2023-04-18 11:51:12 · 728 阅读 · 0 评论 -
骨牌铺方格
【问题描述】在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数. 例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:【输入形式】输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0原创 2023-04-18 11:46:55 · 912 阅读 · 0 评论 -
数塔dp -A
【问题描述】在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最小是多少?已经告诉你了,这是个DP的题目,你能AC吗?【输入形式】输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1原创 2023-04-18 11:39:29 · 780 阅读 · 0 评论 -
关键路径问题
【问题描述】图的连接边上的数据表示其权值,带权值的图称作网。上图可描述为顶点集为(a,b,c,d,e)边集及其权值为(始点,终点 权值):a b 3a c 2b d 5c d 7c e 4d e 6网的源点是入度为0的顶点,汇点是出度为0的顶点。网的关键路径是指从源点到汇点的所有路径中,具有最大路径长度的路径。上图中的关键路径为a->c->d->e,其权值之和为关键路径的长度为15。本题的要求是根据给出的网的邻接矩阵求该网的关键路径及其长度。原创 2023-04-18 11:35:38 · 887 阅读 · 1 评论