自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 畅通工程之局部最小花费问题

某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建快速路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全地区畅通需要的最低成本。输入格式:输入的第一行给出村庄数目N (1≤N≤100);随后的N(N−1)/2行对应村庄间道路的成本及修建状态:每行给出4个正整数,分别是两个村庄的编号(从1编号到N

2021-01-30 00:22:56 194

原创 银行排队问题之单队列多窗口加VIP服务

假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。有些银行会给VIP客户以各种优惠服务,例如专门开辟VIP窗口。为了最大限度地利用资源,VIP窗口的服务机制定义为:当队列中没有VIP客户时,该窗口为普通顾客服务;当该窗口空闲并且队列中有VIP客户在等待时,排在最前面的VIP客户享受该窗口的服务。同时,当轮到某VIP客户出列时,若VIP窗口非空,该客户可以选择空闲的普通窗口

2021-01-30 00:16:52 1110

原创 银行排队问题之单队列多窗口服务

假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。本题要求输出前来等待服务的N位顾客的平均等待时间、最长等待时间、最后完成时间,并且统计每个窗口服务了多少名顾客。输入格式:输入第1行给出正整数N(≤1000),为顾客总人数;随后N行,每行给出一位顾客的到达时间T和事务处理时间P,并且假设输入数据已经按到达时间先后排好了顺序;最后一行给出正整数K(≤10),为开设的营业

2021-01-30 00:15:37 657

原创 银行排队问题之单窗口“夹塞”版

排队“夹塞”是引起大家强烈不满的行为,但是这种现象时常存在。在银行的单窗口排队问题中,假设银行只有1个窗口提供服务,所有顾客按到达时间排成一条长龙。当窗口空闲时,下一位顾客即去该窗口处理事务。此时如果已知第i位顾客与排在后面的第j位顾客是好朋友,并且愿意替朋友办理事务的话,那么第i位顾客的事务处理时间就是自己的事务加朋友的事务所耗时间的总和。在这种情况下,顾客的等待时间就可能被影响。假设所有人到达银行时,若没有空窗口,都会请求排在最前面的朋友帮忙(包括正在窗口接受服务的朋友);当有不止一位朋友请求某位顾客帮

2021-01-30 00:14:10 332

原创 银行业务队列简单模拟

设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。输入格式:输入为一行正整数,其中第1个数字N(≤1000)为顾客总数,后面跟着N位顾客的编号。编号为奇数的顾客需要到A窗口办理业务,为偶数的顾客则去B窗口。数字间以空格分隔。输出格式:按业务处理完成的顺序输出顾客

2021-01-30 00:12:44 138

原创 二分搜索算法的实现

非递归法:#include <bits/stdc++.h>using namespace std;int nn;int xx;int s[10001];template<class Type>int BinarySearch(Type a[],const Type& x,int n){ int left=0; int right=n-1; while(left<=right) { int middle=(l

2020-12-02 22:47:47 93

原创 jmu-ds-顺序表区间元素删除

若一个线性表L采用顺序存储结构存储,其中所有的元素为整数。设计一个算法,删除元素值在[x,y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1)。输入格式:三行数据,第一行是顺序表的元素个数,第二行是顺序表的元素,第三行是x和y。输出格式:删除元素值在[x,y]之间的所有元素后的顺序表。输入样例:105 1 9 10 67 12 8 33 6 23 10输出样例:1 67 12 33 2代码#include <bits/stdc++.h>using n

2020-11-29 16:00:32 431

原创 有序顺序表的插入

本题要求实现递增顺序表的有序插入函数。L是一个递增的有序顺序表,函数Status ListInsert_SortedSq(SqList &L, ElemType e)用于向顺序表中按递增的顺序插入一个数据。 比如:原数据有:2 5,要插入一个元素3,那么插入后顺序表为2 3 5。 要考虑扩容的问题。函数接口定义:Status ListInsert_SortedSq(SqList &L, ElemType e);裁判测试程序样例://库函数头文件包含#include<stdi

2020-11-29 15:59:29 1322

原创 顺序表创建和就地逆置

本题要求实现顺序表的创建和就地逆置操作函数。L是一个顺序表,函数ListCreate_Sq(SqList &L)用于创建一个顺序表,函数ListReverse_Sq(SqList &L)是在不引入辅助数组的前提下将顺序表中的元素进行逆置,如原顺序表元素依次为1,2,3,4,则逆置后为4,3,2,1。函数接口定义:Status ListCreate_Sq(SqList &L);void ListReverse_Sq(SqList &L);裁判测试程序样例://库函数

2020-11-29 15:57:01 396

原创 冒泡法排序

将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。本题要求对任意给定的K(<N),输出扫描完第K遍后的中间结果数列。输入格式:输入在第1行中给出N和K(1≤K<N≤100),在第2行中给出N个待排序的整数,数字间以空格分隔。输出格式:在一行中输出冒泡排序法扫描完第K

2020-11-29 12:05:13 105

原创 爆内存函数实例

本题要求实现一个递归函数,用户传入非负整型参数n,用户依次输出1到n之间的整数。所谓递归函数就是指自己调用自己的函数。说明:(1)递归函数求解问题的基本思想是把一个大规模问题的求解归结为一个相对较小规模问题的求解,小规模归结为小小规模,以此类推,直至问题规模小至边界(边界问题可直接求解)。递归函数由两部分组成,一部分为递归边界,另一部分为递归关系式。以求阶乘函数为例,递归边界Factorial(1)=1;递归公式: Factorial(n)=nFactorial(n-1),它对应的递归函数如下:

2020-11-29 12:02:31 248

原创 顺序表基本操作

本题要求实现顺序表元素的增、删、查找以及顺序表输出共4个基本操作函数。L是一个顺序表,函数Status ListInsert_Sq(SqList &L, int pos, ElemType e)是在顺序表的pos位置插入一个元素e(pos应该从1开始),函数Status ListDelete_Sq(SqList &L, int pos, ElemType &e)是删除顺序表的pos位置的元素并用引用型参数e带回(pos应该从1开始),函数int ListLocate_Sq(SqLis

2020-11-29 11:59:20 156

原创 matlab求二次曲线弧长

clear;dx=0.1p1=‘请输入横坐标起点’p2=‘请输入横坐标终点’p3=‘请输入x^2的系数’p4=‘请输入x的系数’p5=‘请输入常数’be=input(p1)en=input(p2)a=input(p3)b=input(p4)c=input(p5)x=be:dx:enf=@(x)ax.^2+bx+cy1=f(x(1:length(x)-1))y2=f(x(2:length(x)))l=sum(sqrt(dx^2 + (y2-y1).^2))...

2020-11-29 11:54:58 1411

原创 PTA一元多项式的乘法与加法运算

设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。输入样例:4 3 4 -5 2 6 1 -2 03 5 20 -7 4 3 1输出样例:15 24 -25 22 30 21 -10 20 -

2020-11-18 20:17:54 280

原创 Problem H: 回文素数

Description定义一个类SpecialPrime,只有一个静态成员函数bool judge(int value)用于判断value是否是一个回文素数。所谓回文素数是指一个数既是回文数又是素数。Input输入两个数m和n,0<m<n。Output区间[m,n]内的所有回文素数。Sample Input2 1000Sample Output235711101131151181191313353373383727757787797919

2020-09-01 19:41:15 186

原创 宇宙总统

题目描述地球历公元 6036 年,全宇宙准备竞选一个最贤能的人当总统,共有 n 个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统。输入格式第一行为一个整数 n,代表竞选总统的人数。接下来有 n 行,分别为第一个候选人到第 n 个候选人的票数。输出格式共两行,第一行是一个整数 m,为当上总统的人的号数。第二行是当上总统的人的选票。输入输出样例输入:59876512365879541022356985678输出:41022356说明/提示票数可能会很大

2020-08-19 15:42:47 167

原创 扫雷游戏

题目描述扫雷游戏是一款十分经典的单机小游戏。在nn行mm列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格。现在给出nn行mm列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。注:一个格子的周围格子包括其上、下、左、右、左上、右上、左下、右下八个方向上与之直接相邻的格子。输入格式第一行是用一个空格隔开的两个整数nn和mm

2020-07-31 23:23:31 133

原创 Problem A: QQ好友

DescriptionQQ已经成为现代人们生活中进行沟通、交流的重要手段。通过简单抽象,QQ好友的管理可以通过如下类进行表示:QQ类:包括一个int类型的属性,表示QQ号码;一个string类型属性,是QQ昵称。至少有一个构造函数QQ(int,string),用于初始化相关属性。假设QQ号码互不相同。Group类:用于对好友进行分组。包括一个string类型的属性,表示好友组的组名;一个组内QQ好友的列表,即QQ类的对象的列表。至少有如下方法:(1)构造函数Group(string)。(2)v

2020-06-29 23:31:39 326 1

原创 Problem A: 整数的封装

Description现在,请编写一个Integer类,将整数封装起来。目前,只需要你来实现最基本的功能:具有2个构造函数:(1)Integer::Integer(int):根据参数构建一个整数对象。(2)Integer::Integer(char*, int):根据给定的字符串和进制来构建一个整数对象。具有一个int Integer::getValue()方法,用于返回Integer类中所封装的整数的具体数值。Input输入分为多行。第一行是一个正整数M,表示其后面的M行为M个整数

2020-06-24 11:12:26 167

原创 Problem F: 相邻的素数

Description任何大于1的自然数(即正整数),除了1与它自身外,再没有其它的正约数了,这样的自然数叫做质数或素数。现在,需要你来设计一个类Compute,有两个int类型的属性m和n,定义:(1)构造函数Compute(int,int)用来初始化m和n。(2)void showResult():当n>0时,按照从小到大的顺序输出从m开始,不小于m的n个素数;当n<0时,按照从大到小的顺序输出从m开始,不大于m的|n|(n的绝对值)个素数。输出时,两两之间用一个空格隔开。在计算过程

2020-06-22 09:08:47 401

原创 Problem G: 数组的平滑

Description给定一个由int类型的整数组成的数组,数组的平滑是指,将数组中除第一个和最后一个元素外,其他各个元素的值取相邻的两个值的平均值。具体而言,就是对于给定的数组a[n],首先将a[1]取值为a[0]和a[2]的平均值;然后a[2]取值为a[1](更新后的值)和a[3]的平均值;一直计算到a[n-2],为a[n-3](更新后的值)和a[n-1]的平均值。重复上述过程,直到数组的所有元素的值都不变为止。注意,由于数组是int类型的,所有在取平均值时,需要进行四舍五入。比如,原始数组为:2

2020-06-22 09:04:11 407

原创 Problem F: 一帮学生

Description学生Student类是Person类的子类,而且每个人都有生日,生日是Date类的对象。所以,需要定义如下类:Date类:拥有年、月、日三个int类型的属性。Person类:有一个Date类型对象的属性(表示生日)、string类型属性(表示名字),以及一个int类型的静态属性numOfPersons(对象个数)。Student类:是Person类的子类,并拥有一个int类型属性(表明学生学号),一个int类型的静态属性numOfStudents(对象个数)。定义

2020-06-17 15:50:31 148

原创 Problem D: 字符串折叠

Description定义MyString类,包括:一个字符数组或字符指针,用于存储字符串内容。void input():读取一个不含空白符的字符串。void output():输出字符串。如果字符串不是回文串,则输出原串。如果是回文串,则仅输出前半部分。如:原串:abccba,则输出abc原串:abcdcba,则输出abcd原串:abcd,则输出abcdInput第一行是整数N>0,表示之后有N个测试用例。每个测试用例占一行,是一个不含空白符的字符串。每个串不超过1000个字符

2020-06-17 15:47:48 291

原创 Problem B: 薪酬计算 之二

Description某公司有经理(Manager)、销售(Sales)、销售经理(SalesManager)四类雇员(Employee),他们的薪酬计算方法各不一样:每个雇员(Employee)都有每月的基本工资;经理(Manager)除了基本工资之外还有年终分红;销售(Sales)除了基本工资之外,每月还有营销提成;销售经理(SalesManager)既是销售(Sales)人员也是经理(Manager),因此他既有每月的营销提成,也有年终分红。每类雇员的年薪计算方式不一样,因此使用多态来实现

2020-06-17 15:25:08 357

原创 Problem A: 薪酬计算

Description某公司有经理(Manager)、雇员(Employee)、小时工(HourlyWorker)和营销人员(CommWorker)四类员工(Person),他们的薪酬计算方法各不一样:Manager采用年薪制;Employee按月计酬,方法是:月基本工资+奖金,奖金是指奖励几个月工资;HourlyWorker是按工作时间计酬,方法是:工作小时*每小时工资;CommWorker按月计酬,方法是:月基本工资+年销售额的2%;由于每类员工(Person)的工资输入(input函数)、

2020-06-17 15:18:14 354

原创 Problem G: 开个餐馆算算账

Description小明创业了!他开了一家餐馆,每天客人还挺多的。每天下班后,他都要算算今天总共收入多少钱,但是手工算太麻烦了,所以他来向你求助了。Input第1行N>0,表示餐馆提供N个菜品。之后N行,每行包括2部分:菜名(不含空白符)及每份菜品的价格。接着是M>0,表示今天接待的客人数。每个客人的输入份三部分,第1行是客人的姓名(不含空白符),第2行是客人点的菜品的种类数K,之后K行是客人点的菜品名及份数。Output第一行输出Guest Price。之后按

2020-06-17 15:10:40 113

原创 试题 算法训练 友好数

问题描述有两个整数,如果每个整数的约数和(除了它本身以外)等于对方,我们就称这对数是友好的。例如:  9的约数和有:1+3=4  4的约数和有:1+2=3  所以9和4不是友好的。  220的约数和有:1 2 4 5 10 11 20 22 44 55 110=284  284的约数和有:1 2 4 71 142=220  所以220和284是友好的。  编写程序,判断两个数是否是友好数。输入格式一行,两个整数,由空格分隔输出格式如果是友好数,输出"yes",否则输出"no",注意不

2020-05-11 15:02:41 234

原创 试题 基础练习 2n皇后问题

问题描述给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。输入格式输入的第一行为一个整数n,表示棋盘的大小。  接下来n行,每行n个0或1的整数,如果一个整数为1,表示对应的位置可以放皇后,如果一个整数为0,表示对应的位置不可以放皇后。输出格式输出一个整数,表示总共有多少种放法。样例输入41 1 1 11

2020-05-11 15:00:18 183

原创 试题 算法训练 字符删除

问题描述编写一个程序,先输入一个字符串str(长度不超过20),再输入单独的一个字符ch,然后程序会把字符串str当中出现的所有的ch字符都删掉,从而得到一个新的字符串str2,然后把这个字符串打印出来。输入格式输入有两行,第一行是一个字符串(内部没有空格),第二行是一个字符。输出格式经过处理以后的字符串。输入输出样例样例输入123-45-678-样例输出12345678代码#include <iostream>#include <iomanip>#in

2020-05-11 14:57:38 466

原创 Problem C: 四阶多项式

Description定义一个类Equation,用来表示一个四阶多项式:ax4+b*x3+cx^2+d*x+e。其中a、b、c、d、e都是int类型的非负整数,是方程的系数。在该类中至少需要以下3个成员函数:void Equation::print():用来输出多项式。输出时,乘号(即*)不输出,幂用表示,如x5表示x的五次方。当所有的系数都为0时,输出0。如果只有部分系数为0,则这些为...

2020-05-07 11:52:28 1192

原创 试题 算法训练 筛选号码

问题描述有n个人围成一圈,顺序排号(编号为1到n)。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子。从下一个人开始继续报数,直到剩下最后一个人,游戏结束。  问最后留下的是原来第几号的那位。  举个例子,8个人围成一圈:  1 2 3 4 5 6 7 8  第1次报数之后,3退出,剩下:  1 2 4 5 6 7 8 (现在从4开始报数)  第2次报数之后,6退出,剩下:...

2020-05-07 11:35:43 244

原创 试题 算法训练 输出米字形

问题描述根据输入的正整数n (1  米字形由一个(2n-1)*(2n-1)的矩阵组成,矩阵包含从大写A开始的n个字母  例如:n=3时,包含A,B,C;n=4时,包含A,B,C,D。  矩阵的正中间为n个字母中字典序最大的那个,从这个字母开始,沿着西北、正北、东北、正西、正东、西南、正南、东南八个方向各有一条由大写字母组成的直线。并且直线上的字母按字典序依次减小,直到大写字母A。  矩阵的...

2020-05-07 11:33:47 226

原创 试题 基础练习 回形取数

问题描述回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。输入格式输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。输出格式输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。样例输入3 31 2 34 5 67 8 9样...

2020-05-07 11:29:55 140

原创 试题 算法提高 双十一抢购

问题描述一年一度的双十一又来了,某网购网站又开始了半价销售的活动。  小G打算在今年的双十一里尽情地购物,以享受购买的极度快感,她已经列好了她想买的物品的列表。  当然小G并不是出身富贵家庭,所以她网银里的钱只是一个有限的整数S(单位:元)。  这次抢购她打算遵循这三个原则选择每一个物品:  1.先买能“赚”最多的;  2.在“赚”一样多的情况下,先买最便宜的(这样买的东西就可能更多了...

2020-05-06 23:31:57 434

原创 试题 历届试题 核桃的数量

问题描述小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:各组的核桃数量必须相同各组内必须能平分核桃(当然是不能打碎的)尽量提供满足1,2条件的最小数量(节约闹革命嘛)输入格式输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c<30)输出格式输出一个正整数,表示...

2020-05-06 23:27:48 298 2

原创 试题 历届试题 错误票据

问题描述某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能发生在最大和最小号。输入格式要求程序首先输入一个整数N(N<100)表示后面数据行数。接...

2020-05-06 23:26:06 149 1

原创 试题 基础练习 Huffuman树

问题描述Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。  给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下:  1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为pa + pb。  2. 重复步骤1,直到{pi}中只剩下一个...

2020-05-04 22:26:29 129

原创 试题 算法训练 景点游览

问题描述小明来到一个景区游玩,但是他的时间有限,没办法逛遍所有的景点,所以他从网上下载了每个景点的评分,他希望能够使游览的景点的评分总和最高,于是他希望你帮他对于N个景点排下序。输入格式输入的第一行包含一个正整数N,表示N个景点。  第二行有N个正整数,表示每个景点的评分值。输出格式输出一行,包含N个正整数,表示N个景点的评分从大到小的排列样例输入43 2 4 1样例输出4 ...

2020-05-04 22:23:45 275

原创 试题 算法训练 找零钱

问题描述有n个人正在饭堂排队买海北鸡饭。每份海北鸡饭要25元。奇怪的是,每个人手里只有一张钞票(每张钞票的面值为25、50、100元),而且饭堂阿姨一开始没有任何零钱。请问饭堂阿姨能否给所有人找零(假设饭堂阿姨足够聪明)输入格式第一行一个整数n,表示排队的人数。接下来n个整数a[1],a[2],…,a[n]。a[i]表示第i位学生手里钞票的价值(i越小,在队伍里越靠前)输出格式输出YE...

2020-05-02 17:07:50 266

原创 试题 历届试题 翻硬币

问题描述小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:oo*oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作...

2020-04-30 17:09:33 83

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除