算法编程题合集
文章平均质量分 77
分享比较经典的算法编程题。
江湖无为
这个作者很懒,什么都没留下…
展开
-
一文梳理快速排序-从数组到单链表
快递排序的第一种思想(以下都以升序为例):假设一个数组a, 设置一个基准数povit,然后两个指针分别指向数组的开始和结束,假设为i, j从j开始往前走,走到小于povit值得时候停下来,然后i从前往后走,走到大于povit的位置停下来,当i < j的时候进行交换,依次进行,知道i==j的停下来, 然后再交换povit和a[i]的值,最后递归处理[start, i - 1], [i + 1,...原创 2020-04-04 20:38:42 · 213 阅读 · 0 评论 -
栈的压入、弹出序列
题目链接:https://www.nowcoder.com/practice/d77d11405cc7470d82554cb392585106?tpId=13&tqId=11174&tPage=2&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-rankin...原创 2020-03-07 11:32:37 · 120 阅读 · 0 评论 -
1005 继续(3n+1)猜想
1005 继续(3n+1)猜想 (25)(25 分)卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=3进行验证的时候,我们需要计算3、5、8、4、2、1,则当我们对n=5、8、4、2进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算,因为这4个数已经在验...原创 2018-06-27 10:25:09 · 3590 阅读 · 0 评论 -
1003 Emergency (25 分)
1003 Emergency (25 分)As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams...原创 2018-09-29 11:18:50 · 180 阅读 · 0 评论 -
1084 外观数列
1084 外观数列 (20 分)外观数列是指具有以下特点的整数序列:d, d1, d111, d113, d11231, d112213111, ...它从不等于 1 的数字 d 开始,序列的第 n+1 项是对第 n 项的描述。比如第 2 项表示第 1 项有 1 个 d,所以就是 d1;第 2 项是 1 个 d(对应 d1)和 1 个 1(对应 11),所以第 3 项就是 d111...原创 2018-09-19 22:39:59 · 311 阅读 · 0 评论 -
1073 多选题常见计分法
1073 多选题常见计分法(20 分)批改多选题是比较麻烦的事情,有很多不同的计分方法。有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到 50% 分数;如果考生选择了任何一个错误的选项,则不能得分。本题就请你写个程序帮助老师批改多选题,并且指出哪道题的哪个选项错的人最多。输入格式:输入在第一行给出两个正整数 N(≤1000)和 M(≤100),分别...原创 2018-09-09 08:41:37 · 777 阅读 · 0 评论 -
1058 选择题(20 分)
1058 选择题(20 分)批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多。输入格式:输入在第一行给出两个正整数 N(≤ 1000)和 M(≤ 100),分别是学生人数和多选题的个数。随后 M 行,每行顺次给出一道题的满分值(不超过 5 的正整数)、选项个数(不少于 2 且不超过 5 的正整数)、正确选项个数(不超过选项个数的正整数)、所有正...原创 2018-08-24 09:25:43 · 718 阅读 · 1 评论 -
1055 集体照
1055 集体照(25 分)拍集体照时队形很重要,这里对给定的 N 个人 K 排的队形设计排队规则如下: 每排人数为 N/K(向下取整),多出来的人全部站在最后一排; 后排所有人的个子都不比前排任何人矮; 每排中最高者站中间(中间位置为 m/2+1,其中 m 为该排人数,除法向下取整); 每排其他人以中间人为轴,按身高非增序,先右后左交替入队站在中间人的两侧...原创 2018-08-13 08:40:39 · 306 阅读 · 0 评论 -
1054 求平均值
1054 求平均值(20 分)本题的基本要求非常简单:给定 N 个实数,计算它们的平均值。但复杂的是有些输入数据可能是非法的。一个“合法”的输入是 [−1000,1000] 区间内的实数,并且最多精确到小数点后 2 位。当你计算平均值的时候,不能把那些非法的数据算在内。输入格式:输入第一行给出正整数 N(≤100)。随后一行给出 N 个实数,数字间以一个空格分隔。输出格式:对每...原创 2018-08-12 10:00:53 · 327 阅读 · 0 评论 -
精度细节1049 数列的片段和(20)
1049 数列的片段和(20)(20 分)给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段。例如,给定数列{0.1, 0.2, 0.3, 0.4},我们有(0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3, 0.4) (0.3) (0.3, 0.4) (0.4) 这10个...原创 2018-08-04 11:24:16 · 145 阅读 · 0 评论 -
1034 有理数四则运算(20)
1034 有理数四则运算(20)(20 分)本题要求编写程序,计算2个有理数的和、差、积、商。输入格式:输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为0。输出格式:分别在4行中按照“有理数1 运算符 有理数2 = 结果”的格式顺序输出2个有理数的和、差、积、商。注意输出的每个有理数必...原创 2018-08-02 22:50:08 · 188 阅读 · 2 评论 -
1033 旧键盘打字(20)
1033 旧键盘打字(20)(20 分)旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?输入格式:输入在2行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过10^5^个字符的串。可用的字符包括字母[a-z, A-Z]、数字0-9、以及下划线“_”(代表空...原创 2018-07-31 16:23:44 · 182 阅读 · 1 评论 -
1028 人口普查(20)
1028 人口普查(20)(20 分)提问某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过滤掉。输入格式:输入在第一行给出正整数N,取值在(0, 10^5^];随后N行,...原创 2018-07-30 10:16:11 · 140 阅读 · 5 评论 -
Octal Fractions
Octal Fractions Time Limit: 2 Seconds Memory Limit: 65536 KB Fractions in octal (base 8) notation can be expressed exactly in decimal notation. For example, 0.75 in octal is 0.96312...原创 2018-07-25 11:08:27 · 934 阅读 · 0 评论 -
1015 德才论 (25)
题目链接:https://pintia.cn/problem-sets/994805260223102976/problems/9948053075516293121015 德才论 (25)(25 分)宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。...原创 2018-07-22 17:06:45 · 105 阅读 · 0 评论 -
1008 数组元素循环右移问题
这是一个CCF练习的好题!!!1008 数组元素循环右移问题 (20)(20 分)一个数组A中存有N(N&gt0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A~0~ A~1~……A~N-1~)变换为(A~N-M~ …… A~N-1~ A~0~ A~1~……A~N-M-1~)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序...原创 2018-06-27 15:24:42 · 251 阅读 · 0 评论 -
DNA序列(DNA Consensus String, ACM/ICPC Seoul 2006, UVa1368)
Written by Robert_Wang in Southwest University of Science And Technology.输入m个长度均为n的DNA序列,求一个DNA序列,到所有序列的总Hamming距离尽量小。两个等长字符串的Hamming距离等于字符不同的位置个数,例如,ACGT和GCGA的Hamming距离为2(左数第1, 4个字符不同)。输入整数m和n(4≤m≤50...原创 2018-03-07 19:22:46 · 455 阅读 · 0 评论 -
分子量(Molar Mass, ACM/ICPC Seoul 2007, UVa1586)
Written by Robert_Wang in Southwest University of Science And Technology.给出一种物质的分子式(不带括号),求分子量。本题中的分子式只包含4种原子,分别为C, H, O, N,原子量分别为12.01, 1.008, 16.00, 14.01(单位:g/mol)。例如,C6H5OH的分子量为94.108g/mol。分析:做一个函...原创 2018-03-05 13:23:58 · 475 阅读 · 1 评论 -
生成元(Digit Generator, ACM/ICPC Seoul 2005, UVa1583)
Written by Robert_Wang in Southwest University of Science And Technology.如果x加上x的各个数字之和得到y,就说x是y的生成元。给出n(1≤n≤100000),求最小生成元。无解输出0。例如,n=216,121,2005时的解分别为198,0,1979。分析:对于给定的数n,需要从[1,n-1]去找他的最小元,所以在多次执行时...原创 2018-03-03 19:26:42 · 221 阅读 · 0 评论 -
猜数字游戏的提示(Master-Mind Hints, UVa 340)
Written by Robert_Wang in Southwest University of Science And Technology.实现一个经典"猜数字"游戏。给定答案序列和用户猜的序列,统计有多少数字位置正确(A),有多少数字在两个序列都出现过但位置不对(B)。输入包含多组数据。每组输入第一行为序列长度n,第二行是答案序列,接下来是若干猜测序列。猜测序列全0时该组数据结束。n=0时...原创 2018-03-03 18:49:31 · 585 阅读 · 0 评论 -
TeX中的引号---一道竞赛题
Written by Robert_Wang in Southwest University of Science And Technology.在TeX中,左双引号是“``”,右双引号是“''”。输入一篇包含双引号的文章,你的任务是把它转换成TeX的格式。样例输入:"To be or not to be," quoth the Bard, "thatis the question".样例输出:`...原创 2018-03-01 16:38:18 · 332 阅读 · 0 评论 -
竖式计算
Written by Robert_Wang in Southwest University of Science And Technology.分析:这个就是模仿我们小学学的乘法。。。。。如:要求是:找出所有形如abc*de(三位数乘以两位数)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合。输入数字集合(相邻数字之间没有空格),输出所有竖式。每个竖式前应有编号,之后应有一个空行。最...原创 2018-03-01 15:38:35 · 1402 阅读 · 0 评论 -
开灯问题(Linghting Problem)
Written by Robert_Wang in Southwest University of Science And Technology.开灯问题。有n盏灯,编号为1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输入n和k,输出开...原创 2018-02-20 23:22:47 · 321 阅读 · 0 评论 -
排列(permutation)
Written by Robert_Wang in Southwest University of Science And Technology.用1,2,3,…,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3。按照“abc def ghi”的格式输出所有解,每行一个解。分析:这道题我们要解决的是每个数字恰好使用一次,请往下看;package ...原创 2018-02-15 20:49:01 · 389 阅读 · 1 评论 -
分数化小数(decimal)
Written by Robert_Wang in Southwest University of Science And Technology.输入正整数a,b,c,输出a/b的小数形式,精确到小数点后c位。a,b≤10 6 ,c≤100。输入包含多组数据,结束标记为a=b=c=0。样例输入:1 6 40 0 0样例输出:Case 1: 0.1667分析:这道题其实就是模拟除法的过程,例:a/b...原创 2018-02-13 21:18:05 · 481 阅读 · 1 评论 -
阶乘之和(看了题之后是否超出你的预期呢)
Written by Robert_Wang in Southwest University of Science And Technology.输入n,计算S=1!+2!+3!+…+n!的末6位(不含前导0)。n≤10 6 ,n!表示前n个正整数之积。题目简单易懂,操作起来也很简单,但是看到n取10^6时,对于初学者来说就有点懵了,不着急,往下看。分析: 此题培养的是数学中的实验思维,就是通过实...原创 2018-02-12 21:36:02 · 311 阅读 · 0 评论 -
编辑距离简单实现python /c++
编辑距离自行百度....a="123"b="12"a变成b需要多少个操作,一共三种操作,插入,删除,替换,这里的话,a删除3变为b,因此,编辑距离为1;pythondef edit_distance(a,b): dp = [[0 for j in range(len(b)+1)] for i in range(len(a)+1)] for i in range...原创 2019-09-14 20:31:52 · 162 阅读 · 0 评论 -
1025 反转链表
1025 反转链表 (25)(25 分)提问给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4;如果K为4,则输出应该为4→3→2→1→5→6,即最后不到K个元素不反转。输入格式:每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址、结点总个数正整数N(<= 10^5^)、以...原创 2018-07-28 16:41:37 · 1711 阅读 · 6 评论 -
Lotto
Lotto Time Limit: 2 Seconds Memory Limit: 65536 KB In a Lotto I have ever played, one has to select 6 numbers from the set {1,2,...,49}. A popular strategy to play Lotto - although ...原创 2018-07-25 11:37:51 · 253 阅读 · 0 评论 -
1024 科学计数法
1024 科学计数法 (20)(20 分)提问科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位,该数字及其指数部分的正负号即使对正数也必定明确给出。现以科学计数法的格式给出实数A,请编写程序按普通数字表示法输出A,并保证所有有效位都被保留。输入格式:每...原创 2018-07-24 23:05:22 · 212 阅读 · 0 评论 -
1019 数字黑洞 (20)
1019 数字黑洞 (20)(20 分)提问给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。例如,我们从6767开始,将得到7766 - 6677 = 1089\ 9810 - 0189 = 9...原创 2018-07-24 11:08:49 · 188 阅读 · 0 评论 -
1018 锤子剪刀布 (20)
1018 锤子剪刀布 (20)(20 分)提问大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入格式:输入第1行给出正整数N(<=10^5^),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀...原创 2018-07-24 09:39:23 · 113 阅读 · 0 评论 -
Constructing Roads
Written by Robert_Wang in Southwest University of Science And Technology.Constructing RoadsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 9149...原创 2018-05-24 22:53:10 · 261 阅读 · 0 评论 -
7-2 一元多项式的乘法与加法运算
Written by Robert_Wang in Southwest University of Science And Technology.7-2 一元多项式的乘法与加法运算(20 分)设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输...原创 2018-02-11 22:52:40 · 1550 阅读 · 0 评论 -
Lookup mileage(查找里程)
Written by Bruth_Lee in Southwest University of Science And Technology.查找里程(10分)题目内容:下图为国内主要城市之间的公路里程:你的程序要读入这样的一张表,然后,根据输入的两个城市的名称,给出这两个城市之间的里程。注原创 2018-01-21 20:01:35 · 654 阅读 · 0 评论 -
Have Fun with Numbers
Written by Bruth_Lee in Southwest universiy of Science and Technology.自测-4 Have Fun with Numbers(20 分)Notice that the number 123456789 is a 9-digit number consisting exactly the number原创 2018-01-11 13:54:51 · 351 阅读 · 1 评论 -
数组元素循环右移问题
Written by Bruth_Lee in Southwest universiy of Science and Technology.一个数组A中存有N(>)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥)个位置,即将A中的数据由(A0A1⋯AN−1)变换为(AN−M⋯AN−1A0A1⋯AN−M−1)(最后M个原创 2018-01-10 21:10:00 · 526 阅读 · 0 评论 -
素数对猜想
Written by Bruth_Lee in Southwest universiy of Science and Technology.自测-2 素数对猜想(20 分)让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数原创 2018-01-10 20:50:23 · 371 阅读 · 0 评论 -
打印沙漏
Written by Bruth_Lee in Southwest universiy of Science and Technology.制作一个这样简单的沙漏吧!#include#includeusing namespace std;int main(){ int i,j, n, N; char a; while (cin >> N >> a) { n = sqrt((N原创 2018-01-10 19:09:00 · 180 阅读 · 0 评论 -
树的先序遍历、中序遍历、后序遍历、层次遍历的非递归算法
Written by Robert_Wang in Southwest University of Science And Technology.这里提出用非递归遍历的原因是:用递归遍历虽然方便,但是不能递归太深,否则会 stack overflow先序遍历这里有两种遍历方法void PreOrder1(Btree*b){ stack<node*>s; Btree *p; //...原创 2018-04-18 22:06:01 · 3435 阅读 · 0 评论