
习题
文章平均质量分 81
少女与飞剑
Linux
展开
-
算法习题——工作分配问题
问题描述:有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。解题思路:使用回溯法排列树找到每一个解向量x,其中i代表第i个工人,x[i]代表第i个工人分配的工作。这样在每次找到一个解向量后,就可以计算出其费用,然后通过一个变量就可以迭代出最小的费用。在排列树的寻找过程中没有约束条件。输入:310 2 32 3 43 4 5输出:9代码:#include <stdi原创 2020-12-28 15:25:20 · 1619 阅读 · 1 评论 -
算法习题——会场安排问题
问题描述:假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排 对于给定的k个待安排的活动,计算使用最少会场的时间表。输入数据的第一行有1 个正整数k(k≤10000),表示有k个待安排的活动。接下来的k行中,每行有2个正整数,分别表示k个待安排的活动开始时间和结束时间。时间以0 点开始的分钟计。解题思路:1) 对每个活动按照结束时间的先后进行排序2) 开始按照顺序遍历,如果另一个活动的开始时间早于当前活动的结束时间,则要新分配一个会场;如果另一个活动的时间原创 2020-12-27 17:16:40 · 1152 阅读 · 0 评论 -
算法习题——数组交换
#include <stdio.h>int array[100] = {0};//当第一段子数组长度小于第二段int swapFromLeftToRight(int left, int middle, int end) { int temp; if(middle*2 == end+1) { while(middle <= end) { temp = array[middle]; array[midd原创 2020-12-27 17:07:33 · 145 阅读 · 0 评论 -
算法习题——n后问题
问题描述:在n * n格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜 线上的棋子。n后问题等价于在n * n格的棋盘上放置n个皇后,任何2个皇后不放在同一行或 同一列或同一斜线上。输入8输出92代码#include <stdio.h>#include <math.h>//n表示输入的个数int n = 0;int result = 0;//表示结果的位置// i表示行 x[i]的值表示列int原创 2020-12-26 12:57:01 · 418 阅读 · 0 评论 -
算法习题——子集和问题
问题描述:设集合S={x1,x2,…,xn}是一个正整数集合,c是一个正整数,子集和问题判定是否存在S的一个子集S1,使S1中的元素之和为c。试设计一个解子集和问题的回溯法。输入数据第1行有2个正整数n和c,n表示S的大小,c是子集和的目标值。接下来的1行中,有n个正整数,表示集合S中的元素。 是子集和的目标值。接下来的1 行中,有n个正整数,表示集合S中的元素。将子集和问题的解输出。当问题无解时,输出“No Solution!”。输入:53 9 1 8 2-1输出 No Solution!原创 2020-12-25 20:25:25 · 969 阅读 · 0 评论 -
算法习题——删数问题
问题描述:给定n位正整数a,去掉其中任意k<=n个数后,剩下的数按原次序重新排列成一个新的正整数。对于给定的n位正整数a和正整数k,设计一个算法使这个新的正整数达到最小。问题说明:给定一个正整数a为 785314,经过删数后得到的最小的正整数应该是 14。输入 785314 4输出14代码如下:#include <stdio.h>#include <string.h>int main(void) { char str[100]; //标原创 2020-12-25 20:00:59 · 1039 阅读 · 0 评论 -
算法习题——找最大路径记录
在矩形找路径输出最大值输入4 40 1 0 02 0 0 59 0 100 00 11 0 0输出111#include <stdio.h>#include <string.h>#define N 10int map[N][N];int find(int m, int n);void input(int m, int n) { for (int i = 0; i < m; i++) { for (int j原创 2020-10-26 20:58:12 · 215 阅读 · 0 评论 -
自然合并排序
我们知道归并排序是将一个无序的数组两两划分,最终划分成每个组内有序的子元素,组后再将若干个组内有序的元素合并成一个完整有序的数组。这个思路可以使用递归和非递归算法来实现,我在此主要讲自然合并排序自然合并排序当然也是合并排序,所谓的自然只不过就是指:所划分的子数组不在是两两划分,而是每一个子数组都是已经有序的,且每个子数组的长度不在确定。这就是自然合并排序与合并排序的区别。如数组{1,5, 3, 6, 7, 2,4}将此数组可以自然划分为三个有序的子数组{1,5} {3,6,7} {2,4}由原创 2020-10-03 11:22:33 · 749 阅读 · 0 评论 -
字母的去重全排列
给一个字符串,要求输出其中每个字符的全排列,并且不能重复输入:aabc输出:aabcaacbabacabcaacbaacabbaacbacabcaacabacaabcbaa12#include <stdio.h>#include <string.h>#include <stdlib.h>int num = 0;/** * 判断是否交换 *如果交换 返回1 反之为0*/int IsSwap(char *list, i原创 2020-10-02 22:36:29 · 242 阅读 · 0 评论 -
习题11-8 单链表结点删除
本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中所有存储了某给定值的结点删除。链表结点定义如下:struct ListNode { int data; ListNode *next;};函数接口定义:struct ListNode *readlist();struct ListNode *deletem( struct ListNode *L, int m );函数readlist从标准输入读入一系列正整数,按照读入顺序建立单链表。当读到−1时表示输入结束,函数应原创 2020-09-21 20:12:05 · 524 阅读 · 0 评论 -
习题7-2 求一批整数中出现最多的个位数字
给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。输入格式:输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。输出格式:在一行中按格式“M: n1 n2 …”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小...原创 2020-03-22 17:55:48 · 446 阅读 · 0 评论 -
有向图的创建、求度、遍历
题目描述从键盘接收有向图的顶点集,弧集,创建有向图,并完成下列任务:(1)计算结点的出度、入度以及度;(2) 从第一个顶点出发,求一个深度优先遍历序列;(3) 从第一个顶点顶点出发,求一个广度优先遍历序列。注意:以用户输入各个顶点的顺序为顶点的序号。 在深度和广度优先遍历中,优先选择序号小的顶点。输入第一行输入两个整数,以空格隔开,分别代表图的顶点数n和弧数e。(顶点个...原创 2019-11-26 20:44:33 · 1567 阅读 · 0 评论 -
给定权值,哈弗曼编码、译码
题目描述假设某通信报文的字符集由A,B,C,D,E,F这6个字符组成,它们在报文中出现的频度(频度均为整数值)。(1)构造一棵哈弗曼树,依次给出各字符编码结果。(2)给字符串进行编码。(3)给编码串进行译码。规定:构建哈弗曼树时:左子树根结点权值小于等于右子树根结点权值。生成编码时:左分支标0,右分支标1。输入第一行:依次输入6个整数,依次代表A,B,C,D,E,F的频度,用空格...原创 2019-11-17 15:01:49 · 1809 阅读 · 0 评论 -
二叉树层次遍历
题目描述从键盘接收扩展先序序列,以二叉链表作为存储结构,建立二叉树。输出这棵二叉树的层次遍历序列。样例输入ABC##DE#G##F###样例输出ABCDEFG#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAXSIZE 100typedef struct ...原创 2019-11-14 19:48:13 · 570 阅读 · 0 评论 -
二叉树最近共同祖先
题目描述从键盘接收扩展先序序列,以二叉链表作为存储结构,建立二叉树。求两个不同结点ch1,ch2的最近共同祖先。第一行:扩展先序序列第二行:ch1,ch2两个不同结点值,用一个空格间隔。样例输入ABC##DE#G##F###C F样例输出B#include <stdio.h>#include <stdlib.h>#include <strin...原创 2019-11-14 19:43:19 · 342 阅读 · 0 评论 -
二叉树的先序中序 ,中序后序创建法
#include <stdio.h>#include <string.h>#include <stdlib.h>typedef struct node{ char data; struct node *leftChild; struct node *rightChild;}BiNode, *BiTree;void PreO...原创 2019-10-30 20:30:11 · 220 阅读 · 0 评论 -
先序非递归遍历二叉树(c语言)
#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAXSIZE 100typedef struct node{ char data; struct node *leftChild; struct node *rightChild;}BiNode,...原创 2019-10-27 23:15:16 · 461 阅读 · 1 评论 -
三元组稀疏矩阵的加减逆置
#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAXSIZE 100typedef struct { int row, col; int value;}Triple;typedef struct { Triple data[MAXSIZE+1];...原创 2019-10-31 22:53:21 · 300 阅读 · 0 评论 -
二叉树的非递归后序遍历(c++)
以先序扩展序列建立二叉树,并实现其非递归后序遍历#include <stdio.h>#include <iostream>#include <stdlib.h>#include <string.h>#include <stack>using namespace std;//树节点结构typedef struct Node ...原创 2019-10-27 22:58:20 · 526 阅读 · 0 评论 -
魔王语言
写一个魔王解释程序,将魔王的话解释成人能听懂的话。基本要求:设大写字母表示魔王语言的词汇,小写字母表示人的词汇,希腊字母表示可以用大写字母或小写字母代换的变量。用下述两种规则和下述规则(2)实现。(1) B→tAdA(2) A→sae测试数据:B(einxgz)BB(einxgz)B=>tAdA(einxgz)tAdA=>tsaedsae(einxgz)tsaedsae ...原创 2019-10-06 20:41:30 · 620 阅读 · 1 评论 -
马踏棋盘
在一个8*8的棋盘中,输入棋盘位置,马遍历棋盘中每一个格子;要求输出马所踏出的每一步在棋盘的位置。#include <stdio.h>#include <string.h>#include <stdlib.h>#define N 8#define MAXSIZE 64typedef struct{ int x, y;}node;typ...原创 2019-10-06 20:34:09 · 223 阅读 · 1 评论 -
PTA python-输入输出-格式化输出字符串
7-5 jmu-python-输入输出-格式化输出字符串 (10 分)输入3行字符串,然后对其按照说明进行格式化输出输入格式:第1行:一个浮点数字符串第2行:一个整数字符串第3行:一个非数值型字符串输出格式:对浮点数字符串:第1行: 保留2位小数输出第2行: 分别输出浮点数的小写字母e的指数形式,大写字母e的指数形式, 浮点数的百分形式小数部分为2位,之间以一个空格分隔。对于整...原创 2018-12-19 17:20:20 · 8165 阅读 · 1 评论 -
6-2 使用函数输出指定范围内的Fibonacci数
本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数输出两正整数m和n(0&lt;m&lt;n≤100000)之间的所有Fibonacci数。 所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。其中函数fib须返回第n项Fibonacci数;函数PrintFN要在一行中输出给定范围[m, n]内的所有Fibonacci数,相邻数字间有一个...原创 2018-12-26 22:21:09 · 1587 阅读 · 0 评论 -
6-1 jmu-python-杨辉三角
根据输入的n打印n行杨辉三角型。函数接口定义:printYanghui(n):#打印n行杨辉三角型裁判测试程序样例:/* 请在这里填写答案 */n = int(input()) printYanghui(n)输入格式:输入n,转化为整数输出格式:每个数后面均有一个空格。输入样例:5输出样例: 1 1 1 1 2 1 1 3 ...原创 2018-12-26 23:49:41 · 4274 阅读 · 1 评论 -
7-1 jmu-Java&Python-统计一段文字中的单词个数并按单词的字母顺序排序后输出
现需要统计若干段文字(英文)中的不同单词数量。如果不同的单词数量不超过10个,则将所有单词输出(按字母顺序),否则输出前10个单词。注1:单词之间以空格(1个或多个空格)为间隔。注2:忽略空行或者空格行。注3:单词大小写敏感,即’word’与’WORD’是两个不同的单词 。输入说明若干行英文,最后以!!!为结束。输出说明不同单词数量。 然后输出前10个单词(按字母顺序),如果所有单...原创 2018-12-26 23:58:10 · 9569 阅读 · 2 评论 -
PTA Python 列表排序
7-2 表排序 (20 分)输入由10个整数构成的列表,编程只对列表中下标为偶数的元素进行升续排序,下标为奇数的元素保持不动。输入格式:输入列表。输出格式:输出排序后的列表。输入样例:在这里给出一组输入。例如:52,49,80,36,14,58,61,23,97,75输出样例:在这里给出相应的输出。例如:[14,49,52,36,61,58,80,23,97,75]a ...原创 2018-12-18 23:49:57 · 2127 阅读 · 0 评论 -
nyoj 85 ——有趣的数
题目描述:把分数按下面的办法排成一个数表。1/1 1/2 1/3 1/4…2/1 2/2 2/3…3/1 3/2 …4/1……我们以z字型方法给上表的每项编号。特定方法:第一项是1/1,然后是1/2、2/1、3/1、2/2、1/3、1/4、2/3……。编程输入项号N(1&lt;=N&lt;=100000),输出表中第N项。输入描述:第一行有一个整数m(0&lt;m&lt;=10)...原创 2018-12-24 23:06:54 · 205 阅读 · 0 评论 -
7-2 jmu-python-重复元素判定
每一个列表中只要有一个元素出现两次,那么该列表即被判定为包含重复元素。编写函数判定列表中是否包含重复元素,如果包含返回True,否则返回False。然后使用该函数对n行字符串进行处理。最后统计包含重复元素的行数与不包含重复元素的行数。输入格式:输入n,代表接下来要输入n行字符串。然后输入n行字符串,字符串之间的元素以空格相分隔。输出格式:True=包含重复元素的行数, False=不...原创 2018-12-25 16:50:05 · 22567 阅读 · 3 评论 -
PTA 7-3 列表去重
输入一个列表,去掉列表中重复的数字,按原来次序输出!输入格式:在一行中输入列表输出格式:在一行中输出不重复列表元素输入样例:在这里给出一组输入。例如:[4,7,5,6,8,6,9,5] 输出样例:在这里给出相应的输出。例如:4 7 5 6 8 9x = input() #输入最初的字符a = x[1:-1] ...原创 2018-12-25 22:12:03 · 4368 阅读 · 0 评论 -
蛇形填数
生成如下矩阵: 1 2 3 4 5 6 7 24 25 26 27 28 29 8 23 40 41 42 43 30 9 22 39 48 49 44 31 10 21 38 47 46 45 32 11 20 37 36 35 34 33 12 19 18 17 16 15 14 13int main(void){ int number; scanf(...原创 2019-03-17 16:48:25 · 134 阅读 · 0 评论 -
大数相加
#include <stdio.h>#include <string.h>#include <stdlib.h>int main(void){ char a[201], b[201]; int i, j, k, m, n; scanf("%s", a); scanf("%s", b); m = strlen(a); k = n = strle...原创 2019-03-18 17:06:24 · 100 阅读 · 0 评论 -
6-4 建立学生信息链表
本题要求实现一个将输入的学生成绩组织成单向链表的简单函数。函数接口定义:void input();该函数利用scanf从输入中获取学生的信息,并将其组织成单向链表。链表节点结构定义如下:struct stud_node {int num; /*学号*/char name[20]; /*姓名*/int ...原创 2019-06-08 16:27:13 · 996 阅读 · 0 评论 -
问题 E: CONTEST5.星系炸弹(by YAN)
题目描述在X星系的广袤空间中漂浮着n个X星人造“炸弹”,每个炸弹都可以设定多少天之后爆炸。例如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日,星期五爆炸。输入第一行为n值,以后连续n行为炸弹放置日期(格式为 年-月-日)和定时天数(整型)。输出输出n行,每行为爆炸的准确日期(格式为 yyyy年mm月dd日 星期几),日期和星期之间用一个空格隔开。请严格按照格...原创 2019-06-25 12:20:33 · 234 阅读 · 1 评论 -
7-1 复数四则运算
本题要求编写程序,计算2个复数的和、差、积、商。输入格式:输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。输出格式:分别在4行中按照(a1+b1i) 运算符 (a2+b2i) = 结果的格式顺序输出2个复数的和、差、积、商,数字精确到小数点后1位。如果结果的实部或者虚部为0,则不输出。如果结果为0,则输出0.0...原创 2019-06-11 23:17:04 · 1403 阅读 · 0 评论