swust oj系列
发布swust oj习题答案
努力学习中………
这个作者很懒,什么都没留下…
展开
-
SWUST OJ1075: 求最小生成树(Prim算法)
题目描述求出给定无向带权图的最小生成树。图的定点为字符型,权值为不超过100的整形。在提示中已经给出了部分代码,你只需要完善Prim算法即可。#include< iostream>使用命名空间 std;typedef struct{int n;int e;字符数据[500];整型边[500][500];}图形;typedef struct{int index;整型成本;}mincost;typedef struct{int x;int y;整.原创 2022-05-22 00:13:04 · 789 阅读 · 2 评论 -
SWUST OJ1013: 哈希表(开放定址法处理冲突)
题目描述采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用开放定址法的线性探测。输入第一行为哈希表的长度n; 第二行为关键字的个数; 第三行为关键字集合; 第三行为要查找的数据。输出如果查找成功,输出关键字所哈希表中的地址和比较次数;如果查找不成功,输出-1。样例输入131116 74 60 43 54 90 46 31 29 88 7716样例输出3,1#include<iostream>#include&l.原创 2022-05-22 00:10:03 · 296 阅读 · 0 评论 -
SWUST OJ1012: 哈希表(链地址法处理冲突)
题目描述采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用链地址法。建立链表的时候采用尾插法。输入第一行为哈西表的长度m;第二行为关键字的个数n;第三行为关键字集合;第四行为要查找的数据。输出如果查找成功,输出该关键字所在哈希表中的地址和比较次数;如果查找不成功,输出-1。样例输入131316 74 60 43 54 90 46 31 29 88 77 78 7916样例输出3,1#include<iostre.原创 2022-05-22 00:07:38 · 228 阅读 · 0 评论 -
SWUST OJ986: 哈夫曼译码
题目描述通常要求根据给定的编码本对密文进行解码。现已给定相应字符的哈夫曼编码,要求根据编码对密文进行解码。(建立哈夫曼树以及编码、主函数等都已经给出,你只需要填写译码函数void ccode(haffnode hafftree[],int n)即可。const int maxvalue=100;const int maxbit=100;const int maxn=100;#include “iostream”#include “stdio.h”#include “stdli.原创 2022-05-22 00:04:52 · 197 阅读 · 0 评论 -
SWUST OJ984: 利用二叉树中序及先序遍历确定该二叉树的后序序列
题目描述已知二叉树的中序和先序遍历可以唯一确定后序遍历、已知中序和后序遍历可以唯一确定先序遍历,但已知先序和后序,却不一定能唯一确定中序遍历。现要求根据输入的中序遍历结果及先序遍历结果,要求输出其后序遍历结果。输入输入数据占2行,其中第一行表示中序遍历结果,第二行为先序遍历结果。输出对测试数据,输出后序遍历结果。样例输入BFDAEGCABDFCEG样例输出FDBGECA#include<iostream>#include<malloc.原创 2022-05-21 17:10:27 · 137 阅读 · 0 评论 -
SWUST OJ983: 利用二叉树中序及后序遍历确定该二叉树的先序序列
题目描述已知二叉树的中序和先序遍历可以唯一确定后序遍历、已知中序和后序遍历可以唯一确定先序遍历,但已知先序和后序,却不一定能唯一确定中序遍历。现要求根据输入的中序遍历结果及后序遍历结果,要求输出其先序遍历结果。输入第一行为中序序列 第二行为后续序列输出输出为遍历二叉树得到的先序序列样例输入BFDAEGCFDBGECA样例输出ABDFCEG#include<iostream>#include<malloc.h>#include<.原创 2022-05-21 17:08:35 · 90 阅读 · 0 评论 -
SWUST OJ273: 福布斯富豪榜
题目描述1917年创立的福布斯杂志,在编制各种排行榜方面有86年历史,1982年首次推出富豪榜在全球产生空前影响,现在,一年一度的福布斯全球亿万富翁榜在全世界受到密切关注。福布斯每年编制一百多个有关人物、公司和生活时尚排行榜,在全球范围内,福布斯富豪榜的江湖地位毋庸置疑。他云集了世界各地的富豪们。输入有多组测试数据,少于10。 每组数据两个数N (0 < N < = 10^6)和K ( 0< K <= 10 ,K < N ),表示有N位候选人,要从中选出排名前K的.原创 2022-04-18 19:20:44 · 723 阅读 · 3 评论 -
SWUST OJ1043: 利用栈完成后缀表达式的计算
题目描述后缀表达式不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则,如:(2 + 1) * 3 , 即2 1 + 3 *。利用栈结构,将后缀表达式的结果计算出来。输入后缀表达式。以#号作为表达式结束标志。为了简单,处理的数据为0-9的整数。输出计算结果。样例输入3 6 6 2 / - 3 * +#样例输出12#include<iostream>#include<mallo.原创 2022-04-07 16:54:27 · 245 阅读 · 0 评论 -
SWUST OJ1042: 中缀表达式转换为后缀表达式
题目描述中缀表达式是一个通用的算术或逻辑公式表示方法,操作符是以中缀形式处于操作数的中间(例:3 + 4),中缀表达式是人们常用的算术表示方法。后缀表达式不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则,如:(2 + 1) * 3 , 即2 1 + 3 *。利用栈结构,将中缀表达式转换为后缀表达式。(测试数据元素为单个字符)输入中缀表达式输出后缀表达式样例输入A+(B-C/D)*E样例输出ABCD.原创 2022-04-07 16:51:57 · 655 阅读 · 0 评论 -
SWUST OJ1102: 顺序表上数据的划分问题的实现
题目描述建立一个顺序表L,然后以第一个为分界,将所有小于等于它的元素移到该元素的前面,将所有大于它的元素移到该元素的后面。输入顺序表长度n;顺序表中的数据元素。输出移动后的数据元素。样例输入1032 5 22 43 23 56 54 57 11 25样例输出25 11 23 22 5 32 43 56 54 57#include<iostream>#include<malloc.h>#include<cstring&g.原创 2022-04-03 20:31:37 · 463 阅读 · 0 评论 -
SWUST OJ1101: 顺序表中数据的循环移动
题目描述设有长度为n(n>1)的顺序表R,将R中保存的序列循环左移P(0 < P < n)个位置,即将R中的数据由(x0,x1,...,xn-1)变换为(xp,xp+1,...,xn-1,x0,x1,...,xp-1)。如果p值不合法,输出"error!"。输入第一行为数据元素个数n; 第二行为n个整数; 第三行为要左移的位数p输出移动后的序列。样例输入101 2 3 4 5 6 7 8 9 105样例输出6 7 8 9 10 1 2 3 4 .原创 2022-04-03 20:05:37 · 430 阅读 · 0 评论 -
SWUST OJ960: 双向链表的操作问题
题目描述建立一个长度为n的带头结点的双向链表,使得该链表中的数据元素递增有序排列。(必须使用双向链表完成,数据类型为整型。)输入第一行:双向表的长度;第二行:链表中的数据元素。输出输出双向链表中的数据元素的值。样例输入102 4 6 3 5 8 10 21 12 9样例输出复制2 3 4 5 6 8 9 10 12 21#include<iostream>#include<malloc.h>#include<cstri.原创 2022-04-03 13:28:30 · 1329 阅读 · 0 评论 -
SWUST OJ1045: 集合的交运算的实现
题目描述假设有两个集合 A 和 B 分别用两个线性表 LA 和 LB 表示,即线性表中的数据元素即为集合中的成员。编程实现集合A和集合B的交运算。输入第一行为集合A的数据元素个数n;第二行输入n个集合A的数据元素 ;第三行为集合B的数据元素的个数;第四行输入m个集合B的数据元素输出A和B的交集样例输入80 5 6 3 8 7 9 1071 3 4 7 8 9 5样例输出5 3 8 7 9#include<iostream>#inc.原创 2022-04-02 14:46:43 · 125 阅读 · 0 评论 -
SWUST OJ1038: 顺序表中重复数据的删除
题目描述将存储在顺序表中的长度为n的线性表中指定的数据全部删除。输入第一行为顺序表的长度n; 第二行为顺序表中的数据元素; 第三行为指定要删除的元素值。输出如果表不空,输出删除指定值后的线性表;如果删除后表空,则输出-1。样例输入811 22 33 44 44 55 44 6644样例输出11 22 33 55 66#include<iostream>#include<malloc.h>#include<cstring.原创 2022-04-02 12:17:16 · 228 阅读 · 0 评论 -
SWUST OJ953: 单链表的删除操作的实现
题目描述建立长度为n的单链表,删除第i个结点之前的结点。输入第一行为自然数n,表示链式线性表的长度;第二行为n个自然数表示链式线性表各元素值;第三行为指定的删除参数i。输出指定删除位置合法时候,输出删除元素后的链式线性表的所有元素,元素之间用一个空格隔开。输入不合法,输出"error!"。样例输入51 2 3 4 53样例输出1 3 4 5#include<iostream>#include<malloc.h>#in.原创 2022-03-31 23:32:45 · 406 阅读 · 0 评论 -
SWUST OJ943: 顺序表插入操作的实现
题目描述建立长度为n的顺序表,在指定的数据元素item之前插入数据元素data。如果指定的数据元素item不存在,则将data插入到顺序表的尾端。(数据类型为整型)输入第一行为顺序表的长度n;第二行为顺序表中的数据元素;第三行为指定的数据元素item;第四行为要插入的数据元素data;输出输出结果为顺序表中的数据元素。样例输入1010 20 30 40 50 60 70 80 90 1005055样例输出10 20 30 40 55 50 60 70.原创 2022-03-31 13:34:59 · 288 阅读 · 0 评论 -
SWUST OJ942: 逆置顺序表
题目描述建立长度为n的顺序表,然后将表中的数据元素逆置,即若表中原来的数据元素序列为(a0,a1,a2,...,an),则逆置后的数据元素序列为(an,an-1,an-2,...,a1,a0)。(数据类型为字符型)输入第一行为顺序表的长度n;第二行为顺序表中的数据元素.输出输出为逆置后的顺序表.样例输入7ABCDEFG样例输出G F E D C B A#include<iostream>#include<malloc.h>#inc.原创 2022-03-31 13:13:41 · 190 阅读 · 0 评论 -
SWUST OJ941: 有序顺序表的合并操作的实现
题目描述已知两非递减的顺序线性表,要求合并成一个新的非递减顺序线性表。(测试数据为整型)输入输入包含四行,第一行为自然数n,表示第一个非递减顺序线性表的长度;第二行为n个自然数构成的非递减顺序线性表;第三行为自然数m,表示第二个非递减顺序线性表的长度;第四行为m个自然数构成的非递减顺序线性表。输出输出:用一行输出合并后的非递减顺序线性表,各数之间用一个空格隔开。样例输入21 332 3 6样例输出1 2 3 3 6#include<io.原创 2022-03-31 13:03:26 · 199 阅读 · 0 评论 -
SWUST OJ58:添加反转数字
题目描述马里迪内西亚的古董喜剧演员更喜欢喜剧而不是悲剧。不幸的是,大多数古代戏剧都是悲剧。因此,ACM的戏剧顾问决定将一些悲剧变成喜剧。显然,这项工作非常艰难,因为戏剧的基本感觉必须保持完整,尽管所有事物都变为对立面。例如数字:如果悲剧中出现任何数字,则必须将其转换为反向形式,然后才能被接受为喜剧。反转数字是用阿拉伯数字书写的数字,但数字的顺序是反转的。第一个数字变为最后一个,反之亦然。例如,如果主角在悲剧中有1245个草莓,那么他现在有5421个草莓。请注意,省略了所有前导零。这意味着如果数字以.原创 2022-03-28 19:34:49 · 322 阅读 · 0 评论 -
SWUST OJ76: 数字模式的识别
题目描述马里迪内西亚的古董喜剧演员更喜欢喜剧而不是悲剧。不幸的是,大多数古代戏剧都是悲剧。因此,ACM的戏剧顾问决定将一些悲剧变成喜剧。显然,这项工作非常艰难,因为戏剧的基本感觉必须保持完整,尽管所有事物都变为对立面。例如数字:如果悲剧中出现任何数字,则必须将其转换为反向形式,然后才能被接受为喜剧。反转数字是用阿拉伯数字书写的数字,但数字的顺序是反转的。第一个数字变为最后一个,反之亦然。例如,如果主角在悲剧中有1245个草莓,那么他现在有5421个草莓。请注意,省略了所有前导零。这意味着如果数字以.原创 2022-03-28 19:32:47 · 483 阅读 · 0 评论 -
SWUST OJ1: 卫星照片
题目描述农民约翰购买了他农场的W x H像素的卫星照片(1 <= W <= 80,1 <= H <= 1000),并希望确定最大的"连续"(连接)牧场。当牧场中的任何一对像素可以通过遍历作为牧场一部分的相邻垂直或水平像素来连接时,牧场是连续的。(很容易创建形状非常奇怪的牧场,甚至是围绕其他圆圈的圆圈。每张照片都经过数字增强,将牧场区域显示为星号('*'),将非牧场区域显示为句点('.')。这是一张 10 x 5 的卫星照片样本:..**......*...*.......原创 2022-03-26 18:26:46 · 731 阅读 · 0 评论 -
SWUST OJ4:迷宫问题
题目描述给定一个迷宫,找到从开始到目标的最短路径。输入Input consists serveral test cases.First line of the input contains number of test case T.For each test case the first line contains two integers N , M ( 1 <= N, M <= 100 ).Each of the following N lines contain.原创 2022-03-26 12:35:32 · 410 阅读 · 0 评论 -
SWUST OJ956: 约瑟夫问题的实现
题目描述n个人围成一个圈,每个人分别标注为1、2、...、n,要求从1号从1开始报数,报到k的人出圈,接着下一个人又从1开始报数,如此循环,直到只剩最后一个人时,该人即为胜利者。例如当n=10,k=4时,依次出列的人分别为4、8、2、7、3、10,9、1、6、5,则5号位置的人为胜利者。给定n个人,请你编程计算出最后胜利者标号数。(要求用单循环链表完成。)输入第一行为人数n;第二行为报数k。输出输出最后胜利者的标号数。样例输入104样例输出5#incl.原创 2022-03-24 19:49:35 · 383 阅读 · 0 评论 -
SWUST OJ958: 单链表的定位操作
题目描述建立一个长度为n的带头结点的单链表,查找该链表中数据元素为item的结点,若找到,输出该结点在链表中的位序;没找到,输出0。(处理数据原始类型为整型,链表计算从1开始。)输入第一行为链表的长度n;第二行为链表中的数据元素的值;第三行为数据item。输出找到就输出该结点的位序,没有找到输出0。样例输入101 2 3 4 5 6 7 8 9 103样例输出3#include<stdio.h>#include<string.h.原创 2022-03-20 17:43:45 · 1368 阅读 · 0 评论 -
SWUST OJ957: 逆置单链表
题目描述建立长度为n的单链表,然后将其数据元素逆置,即第1个元素变为最后一个元素,第2个元素变为倒数第2个元素,以此类推,最后一个元素变为第1个元素。(处理的数据类型为字符型。必须使用链表完成。)输入第一行为链表长度n;第二行为链表中的n个数据元素的值。输出逆置后的原始的值。样例输入10ABCDEFGHIJ样例输出J I H G F E D C B A#include<stdio.h>#include<string.h>#i.原创 2022-03-20 17:03:52 · 1686 阅读 · 0 评论 -
SWUST OJ954: 单链表的链接
题目描述建立长度为n的单链表A和长度为m的单链表B。编程实现将B表链接在A表的尾端,形成一个单链表A。数据类型指定为字符型。输入第一行为A表的长度n;第二行为A表中的数据元素;第三行为B表的长度m;第四行为B表中的数据元素。输出输出为链接好后的A表中的所有数据元素。样例输入4A B C D61 2 3 4 5 6样例输出A B C D 1 2 3 4 5 6#include<stdio.h>#include<string.h.原创 2022-03-20 14:29:38 · 1481 阅读 · 0 评论 -
SWUST OJ955: 单链表上查找算法的实现
题目描述建立一个长度为n的带头结点的单链表,在该表中寻找第i个结点,若找到,则输出ok,否则输出error。处理数据类型为整型。输入第一行为链表的长度n;第二行为链表中的数据元素;第三行为要找的结点i。输出找到就输出ok,没找到就输出error。样例输入101 2 3 4 5 6 7 8 9 105样例输出ok#include<stdio.h>#include<string.h>#include<math.h>.原创 2022-03-20 12:42:48 · 158 阅读 · 0 评论 -
SWUST OJ959: 单链表的删除
题目描述建立一个长度为n的单链表,删除链表中所有数据元素为x的结点。(数据类型为整型)输入第一行为链表的长度n;第二行为链表中的数据元素;第三行为要删除的数据元素x的值。输出删除数据x后,单链表中的数据元素。样例输入101 2 3 4 5 6 7 8 9 105样例输出1 2 3 4 6 7 8 9 10#include<stdio.h>#include<string.h>#include<math.h>#.原创 2022-03-19 22:15:57 · 326 阅读 · 0 评论 -
SWUST OJ952: 单链表的插入操作的实现
题目描述建立长度为n的单链表,在第i个结点之前插入数据元素data。输入第一行为自然数n,表示链式线性表的长度; 第二行为n个自然数表示链式线性表各元素值; 第三行为指定插入的位置i;第四行为待插入数据元素data。输出指定插入位置合法时候,输出插入元素后的链式线性表的所有元素,元素之间用一个空格隔开。输入不合法,输出"error!"。样例输入51 2 3 4 536样例输出1 2 6 3 4 5#include<stdio.h>#incl.原创 2022-03-19 22:12:52 · 282 阅读 · 0 评论 -
SWUST OJ32: 简单背包问题
题目描述设有一个背包可以放入的物品重量为S,现有n件物品,重量分别是w1,w2,w3,...wn。问能否从这n件物品中选择若干件放入背包中,使得放入的重量之和正好为S。如果有满足条件的选择,则此背包有解,否则此背包问题无解。输入输入数据有多行,包括放入的物品重量为s,物品的件数n,以及每件物品的重量(输入数据均为正整数)多组测试数据。输出对于每个测试实例,若满足条件则输出“YES”,若不满足则输出“NO”样例输入20 51 3 5 7 9样例输出YE..原创 2022-03-07 22:24:53 · 563 阅读 · 0 评论 -
SWUST OJ668: 小偷跑了
题目描述近期东六宿舍楼小偷很聪明,他们总是能寻找到偷窃后逃跑的路线,为了抓到他们,我们需要知道他们逃跑的路线,请你帮忙找出他们逃跑的路线(为简单化问题,我们保证最多只有一条逃跑路径,且起点为( 0 , 0 ),终点( 4 , 4)为,不能斜线逃跑,若终点有人拦截,也为逃跑失败)。输入一个5*5矩阵,用空格隔开0表示可行走路径,1表示障碍,逃跑起点为左上,终点为右下输出逃跑线路,见输出示例(请注意x,y轴方向)如果没有路可以逃,则输出: "No Way!"(不含冒号和引号)样例.原创 2022-03-01 17:10:05 · 150 阅读 · 0 评论 -
SWUST OJ605: 格雷码
题目描述在数字系统中只能识别0和1,各种数据要转换为二进制代码才能进行处理,格雷码是一种无权码,采用绝对编码方式,典型格雷码是一种具有反射特性和循环 特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。格雷码属于可靠性编码,是一种错误最小 化的编码方式,因为,自然二进制码可以直接由数/模转换器转换成模拟信号,但某些情况,例如从十进制的3转换成4时二进制码的每一位都要变,使数字电路产 生很大的尖峰电流脉冲。而格雷码则没有这一缺点,它是一种数字排序系.原创 2022-01-21 13:54:29 · 123 阅读 · 0 评论 -
SWUST OJ312: 偷菜
题目描述有位农夫喜欢把菜种成一排,并且两棵菜之间相距一米。现在农夫种了300米长的菜,但是不幸的是经常被偷。这小偷也有一个奇怪的习惯,总是一次偷一段距离的菜,并且老是忘记已经偷过的地方。输入第一行:小偷偷菜的段数N 接下来N行小偷每次偷菜的始末点,范围[0, 300]。输出小偷总共偷到的菜的棵数。样例输入40 46 453 970 100样例输出77#include<stdio.h>int main(){ int n; scanf(.原创 2022-01-20 23:53:26 · 94 阅读 · 0 评论 -
SWUST OJ492: 荷兰国旗问题
题目描述荷兰国旗的问题是重新排列一系列字符R,W和B(红色,白色和蓝色是荷兰国旗的颜色),以便所有R首先出现,W紧随其后,B最后。针对此问题设计线性且稳定的算法。输入two lines, the first line is total of numbers characters R,W and B ,and the numbers less than 500005the second line is random characters R,W and B输出a line, all.原创 2022-01-20 18:59:50 · 761 阅读 · 0 评论 -
SWUST OJ286: 程序设计C 实验四 题目六 特殊矩阵的查找
题目描述给定一个整型5*6的矩阵,A[5][6]= 1 2 3 4 5 67 8 9 10 11 1213 14 15 16 17 1819 20 21 22 23 2425 26 27 28 29 30A中每一维方向上都按从小到大的顺序排列。编写一个查找函数,查找某元素在矩阵中的位置(该元素在矩阵中真实有点咸)。要求查找该元素时,在矩阵中的比较次数不超过5+6=11次。输入矩阵中的元素输出元素在矩阵中的行标、列标、比较次数样例输入...原创 2022-01-20 15:17:28 · 370 阅读 · 2 评论 -
SWUST OJ285: 程序设计C 实验三 题目五 求二阶逆矩阵
题目描述给定的二阶矩阵(2*2),求其逆矩阵。输入输入大小为2*2的距阵。输出输出一个大小为2*2的距阵,矩阵每一行相邻的的两个数字之间由一个空格隔开。具体的请详见 Sample Output 。样例输入2 01 1样例输出0.500000 0.000000-0.500000 1.000000#include<stdio.h>int main(){ double a[2][2],b[2][2]; int i, j; for (i = .原创 2022-01-20 15:03:29 · 239 阅读 · 0 评论 -
SWUST OJ150: 采药
题目描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:"孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。" 如果你是辰辰,你能完成这个任务吗?输入输入的第一行有两个整数T(1 <= T <= 1000)和M.原创 2022-01-19 16:58:34 · 120 阅读 · 0 评论 -
SWUST OJ294: 程序设计C 实验五 题目四 二维动态数组转置
题目描述输入两个数字分别控制行向量个数和列向量个数。动态生成二维矩阵,对矩阵赋值后将其转置输出。输入输入的第一行为了两个整数m、n,接下来有一个由m*n个数据组成的整数矩阵。输出按转置后的矩阵格式输出转置矩阵(n*m)。样例输入3 21 23 45 6样例输出1 3 52 4 6#include<stdio.h>int main(){ int m, n; scanf("%d%d", &m, &n); int a[1.原创 2022-01-19 14:30:17 · 305 阅读 · 0 评论 -
SWUST OJ170: n阶勒让德多项式
题目描述用递归函数,求n阶勒让德多项式的值,递归公式为输入每行第一个数为n,第二个数为x输出样例输入2 31 500 310 -10样例输出2.5501-9.58095#include<stdio.h>double dp[1000];int main(){ int n, x; while (scanf("%d%d", &n, &x) != EOF) { int i; dp[0] = 1; dp[..原创 2022-01-18 17:01:46 · 258 阅读 · 1 评论 -
SWUST OJ15: A + B 加
题目描述打印两个整数的总和。输入two integer a and b.(题目数据可能会超long long)输出the sum of a and b.样例输入1 2样例输出3#include<stdio.h>#include<string.h>int main(){ char a[1000], b[1000]; int c[1000], d[1000]; memset(a, 0, sizeof(a)); memset(b,.原创 2022-01-14 20:37:08 · 343 阅读 · 0 评论