自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 问答 (1)
  • 收藏
  • 关注

原创 中序后序转先序

#include<iostream>#include<algorithm>#include<vector>using namespace std;typedef int ElementType;int post[30], in[30];void Traversal(int postL, int postR, int inL, int inR, int N);int main(){ int N, i; cin >> N; for (i =

2021-06-09 23:11:04 233

原创 07-图6 旅游规划

有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。输入格式:输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N−1);M是高速公路的条数;S是出发地的城市编号;D是目的地的城市编号。随后的M行中,每行给出一条高速公路的信息,分别是:城市1、城市2、高速公路长度、收费额,中

2021-05-24 22:30:54 132

原创 07-图4 哈利·波特的考试

输入格式:输入说明:输入第1行给出两个正整数N (≤100)和M,其中N是考试涉及的动物总数,M是用于直接变形的魔咒条数。为简单起见,我们将动物按1~N编号。随后M行,每行给出了3个正整数,分别是两种动物的编号、以及它们之间变形需要的魔咒的长度(≤100),数字之间用空格分隔。输出格式:输出哈利·波特应该带去考场的动物的编号、以及最长的变形魔咒的长度,中间以空格分隔。如果只带1只动物是不可能完成所有变形要求的,则输出0。如果有若干只动物都可以备选,则输出编号最小的那只。#include<ios

2021-05-20 23:24:11 328

原创 06-图3 六度空间

输入格式:输入第1行给出两个正整数,分别表示社交网络图的结点数N(1<N≤10​3,表示人数)、边数M(≤33×N,表示社交关系数)。随后的M行对应M条边,每行给出一对正整数,分别是该条边直接连通的两个结点的编号(节点从1到N编号)。输出格式:对每个结点输出与该结点距离不超过6的结点数占结点总数的百分比,精确到小数点后2位。每个结节点输出一行,格式为“结点编号:(空格)百分比%”。#include<iostream>#include<queue>#include &

2021-05-17 17:57:55 377

原创 06-图2 Saving James Bond - Easy Version

This time let us consider the situation in the movie “Live and Let Die” in which James Bond, the world’s most famous spy, was captured by a group of drug dealers. He was sent to a small piece of land at the center of a lake filled with crocodiles. There he

2021-05-16 17:46:15 65

原创 06-图1 列出连通集 (邻接表方法)

给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。输入格式:输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。输出格式:按照"{ v​1 v​2​​ … vk}"的格式,每行输出一个连通集。先输出DFS的结果,再输出BFS的结果。#include <iostream>

2021-05-15 11:52:14 191

原创 03-树3 Tree Traversals Again

An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For example, suppose that when a 6-node binary tree (with the keys numbered from 1 to 6) is traversed, the stack operations are: push(1); push(2); push(3); pop(); pop(

2021-05-12 22:17:00 83

原创 05-树8 File Transfer

We have a network of computers and a list of bi-directional connections. Each of these connections allows a file transfer from one computer to another. Is it possible to send a file from any computer on the network to any other?Input Specification:Each i

2021-05-12 18:24:16 102

原创 02-线性结构4 Pop Sequence

Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, …, N and pop randomly. You are supposed to tell if a given sequence of numbers is a possible pop sequence of the stack. For example, if M is 5 and N is 7, we can obtain

2021-05-05 23:59:37 126

原创 02-线性结构3 Reversing Linked List

Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K=3, then you must output 3→2→1→6→5→4; if K=4, you must output 4→3→2→1→5→6.Input Specification:Each

2021-05-04 20:56:04 57

原创 04-树5 Root of AVL Tree

Now given a sequence of insertions, you are supposed to tell the root of the resulting AVL tree.Input Specification:Each input file contains one test case. For each case, the first line contains a positive integer N (≤20) which is the total number of key

2021-04-17 12:18:57 57

原创 05-树7 堆中的路径

将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。输入格式:每组测试第1行包含2个正整数N和M(≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000, 10000]内的N个要被插入一个初始为空的小顶堆的整数。最后一行给出M个下标。输出格式:对输入中给出的每个下标i,在一行中输出从H[i]到根结点的路径上的数据。数字间以1个空格分隔,行末不得有多余空格。#include<iostream>using

2021-04-17 00:04:26 81

原创 04-树4 是否同一棵二叉搜索树

#include<iostream>using namespace std;typedef struct TreeNode* Tree;struct TreeNode { int v; Tree left, right; int flag;};Tree NewNode(int V);Tree Insert(Tree T, int V);int check(Tree T, int V);int Judge(Tree T, int N);void Reset(Tree T

2021-04-14 22:09:58 68

原创 04-树4 是否同一棵二叉搜索树

给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。输入格式:输入包含若干组测试数据。每组数据的第1行给出两个正整数N (≤10)和L,分别是每个序列插入元素的个数和需要检查的序列个数。第2行给出N个以空格分隔的正整数,作为初始插入序列。最后L行,每行给出N个插入的元素,属于L个需要检查

2021-04-14 22:05:53 112

原创 04-树4 是否同一棵二叉搜索树

给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。输入格式:输入包含若干组测试数据。每组数据的第1行给出两个正整数N (≤10)和L,分别是每个序列插入元素的个数和需要检查的序列个数。第2行给出N个以空格分隔的正整数,作为初始插入序列。最后L行,每行给出N个插入的元素,属于L个需要检查

2021-04-14 21:56:51 69

原创 03-树2 List Leaves

Given a tree, you are supposed to list all the leaves in the order of top down, and left to right.Input Specification:Each input file contains one test case. For each case, the first line gives a positive integer N (≤10) which is the total number of node

2021-04-11 23:25:21 91

原创 03-树1 树的同构

给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤10),即该树的结点数(此时假设结点从0到N−1编号);随后N行,第i行对应编号第i个结点,给出该结点中存储的1个英文大写字母、其左孩子结点的编号、右孩子结点的编号。如果孩子结点为空,则在相应位置上给出

2021-04-11 17:54:06 89

原创 02-线性结构2 一元多项式的乘法与加法运算

设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。#include<iostream>using namespace std;typedef struct PolyNode* Polynom

2021-04-09 22:24:56 84

原创 02-线性结构1 两个有序链表序列的合并

L1和L2是给定的带头结点的单链表,其结点存储的数据是递增有序的;函数Merge要将L1和L2合并为一个非递减的整数序列。应直接使用原序列中的结点,返回归并后的带头结点的链表头指针。List Merge(List L1, List L2){ List tmp1, tmp2, L, head; head = (List)malloc(sizeof(struct Node)); L = head; //储存头节点以供返回. tmp1 = L1->Next;

2021-04-07 23:53:43 97

原创 递归输出vector

#include<iostream>#include<string>#include<vector>#include<cstdlib>using namespace std;void print(vector<int> vec,size_t i){ if (i == 0) { //结束条件 cout << vec[i] << endl; //输出第一位 return; //返回值

2021-03-15 00:33:10 193

原创 秦九韶算法比较时间复杂度

给定另一个100阶多项式 #include<iostream>#include<time.h>#include<math.h>using namespace std;clock_t start, stop;double duration;#define MAXN 100#define MAXK 1e5double f1(int n, double x);double f2(int n, double x);int main(){ int

2021-03-07 17:16:35 647

原创 vs中修改*(star指针)初始化时的位置

“工具”

2021-03-02 12:21:03 411

原创 套接字编程: 邮件客户

from socket import *import base64msg = "\r\n hello world!"endmsg = "\r\n.\r\n"# Choose a mail server (e.g. Google mail server) and call it mailservermailserver = "smtp.163.com"# Create socket called clientSocket and establish a TCP connection with m

2021-02-17 00:22:26 382

原创 套接字编程: UDPping程序

from socket import *import timeservername = '192.168.1.38' # 服务器ipserverPort = 12000 # 端口号clientSocket = socket(AF_INET, SOCK_DGRAM) # 创建套接字clientSocket.settimeout(1) # 套接字超时值1sfor i in range(0, 10)

2021-02-17 00:06:01 417

原创 套接字编程作业: Web服务器

# import socket moduleimport datetimefrom socket import *serverSocket = socket(AF_INET, SOCK_STREAM)# Prepare a sever socketserverPort = 6789 # 端口号serverSocket.bind(('', serverPort)) # 套接字绑定端口号serverSocket.

2021-02-16 23:46:35 540

原创 7-38 数列求和-加强版

给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A)。例如A=1, N=3时,S=1+11+111=123。输入格式:输入数字A与非负整数N。输出格式:输出其N项数列之和S的值。思路:大于整型,故使用数组找出每一位数的规律(eg: 222 + 22 + 2=246 6=23 4=22 2=21 每一位为a(n-i) )利用加法法则进位(不过是个位在前,高位在后) (脑补竖式过程)#include<stdi

2021-01-25 16:38:16 150

原创 7-36 复数四则运算

7-36 复数四则运算 (15分)本题要求编写程序,计算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。复杂重复的事情请交给函数!#include<stdio.h&gt

2021-01-25 13:50:26 181

原创 7-35 有理数均值

本题要求编写程序,计算N个有理数的平均值。输入格式:输入第一行给出正整数N(≤100);第二行中按照a1/b1 a2/b2 …的格式给出N个分数形式的有理数,其中分子和分母全是整形范围内的整数;如果是负数,则负号一定出现在最前面。输出格式:在一行中按照a/b的格式输出N个有理数的平均值。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。#include<stdio.h>#include <math.h>#include<string.h>int

2021-01-25 00:30:02 170

原创 7-33 有理数加法(穷举得最小公倍数法)

本题要求编写程序,计算两个有理数的和。输入格式:输入在一行中按照a1/b1 a2/b2的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数。输出格式:在一行中按照a/b的格式输出两个有理数的和。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。#include<stdio.h>#include <math.h>#include<string.h>int main(void){ int a1, b1, a2, b2, i, j

2021-01-24 15:38:49 147

原创 7-32 说反话-加强版 (C语言纯字符串解法)

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。输出格式:每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。#include<stdio.h>#include <math.h>#include<string.h>int main(v

2021-01-24 13:34:48 340 1

原创 7-31 字符串循环左移

输入一个字符串和一个非负整数N,要求将字符串循环左移N次。输入格式:输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。输出格式:在一行中输出循环左移N次后的字符串。#include<stdio.h>#include <math.h>#include<string.h>int main(void){ char s[101]; char s1[101]; int n, i, x; gets(s);

2021-01-23 22:04:03 79

原创 7-30 字符串的冒泡排序

我们已经知道了将N个整数按从小到大排序的冒泡排序法。本题要求将此方法用于字符串序列,并对任意给定的K(<N),输出扫描完第K遍后的中间结果序列。输入格式:输入在第1行中给出N和K(1≤K<N≤100),此后N行,每行包含一个长度不超过10的、仅由小写英文字母组成的非空字符串。输出格式:输出冒泡排序法扫描完第K遍后的中间结果序列,每行包含一个字符串。#include<stdio.h>#include <math.h>#include<string.h&g

2021-01-23 19:25:01 72

原创 7-29 删除字符串中的子串

输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。输入格式:输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。输出格式:在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。#include<stdio.h>#include <math.h>#include<string.h>int main(void){ char s1[80]; char s2[80];

2021-01-23 18:43:49 85

原创 7-28 猴子选大王

一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?输入格式:输入在一行中给一个正整数N(≤1000)。输出格式:在一行中输出当选猴王的编号。#include<stdio.h>#include <math.h>#include<string.h>

2021-01-23 17:44:48 53

原创 7-26 单词长度

你的程序要读入一行文本,其中以空格分隔为若干个单词,以.结束。你要输出每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如it’s算一个单词,长度为4。注意,行中可能出现连续的空格;最后的.不计算在内。输入格式:输入在一行中给出一行文本,以.结束提示:用scanf("%c",…);来读入一个字符,直到读到.为止。输出格式:在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。思路:检测到前有空格的字母则输出计数结果,否则无法排除开头结尾空格.结尾后无法检测,

2021-01-22 22:21:26 52

原创 7-25 念数字

字符串数组指针: 字符串存入数组中, 每一个元素是字符串指针.要用双引号.#include<stdio.h>#include <math.h>#include<string.h>int main(void){ char* str[10] = { "ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu" }; char c; int i,n, flag = 0; while ((c

2021-01-22 21:15:52 84

原创 7-23 币值转换(强行过点的简单方法)

7-23 币值转换 (20分)输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式。如23108元,转换后变成“贰万叁仟壹百零捌”元。为了简化输出,用小写英文字母a-j顺序代表大写数字0-9,用S、B、Q、W、Y分别代表拾、百、仟、万、亿。于是23108元应被转换输出为“cWdQbBai”元。输入格式:输入在一行中给出一个不超过9位的非负整数。输出格式:在一行中输出转换后的结果。注意“零”的用法必须符合中文习惯。强行过测试点的方法,比较简单无脑,累了,有点难

2021-01-22 17:42:34 132

原创 7-19 支票面额

一个采购员去银行兑换一张y元f分的支票,结果出纳员错给了f元y分。采购员用去了n分之后才发觉有错,于是清点了余额尚有2y元2f分,问该支票面额是多少?输入格式:输入在一行中给出小于100的正整数n。输出格式:在一行中按格式y.f输出该支票的原始面额。如果无解,则输出No Solution。#include<stdio.h>#include <math.h>int main(void){ int n,y,f; scanf_s("%d", &n); for

2021-01-21 22:53:23 58

原创 7-18 二分法求多项式单根

二分法求函数根的原理为:如果连续函数f(x)在区间[a,b]的两个端点取值异号,即f(a)f(b)<0,则它在这个区间内至少存在1个根r,即f®=0。二分法的步骤为:检查区间长度,如果小于给定阈值,则停止,输出区间中点(a+b)/2;否则如果f(a)f(b)<0,则计算中点的值f((a+b)/2);如果f((a+b)/2)正好为0,则(a+b)/2就是要求的根;否则如果f((a+b)/2)与f(a)同号,则说明根在区间[(a+b)/2,b],令a=(a+b)/2,重复循环;如果f((

2021-01-21 19:42:50 63

原创 7-16 求符合给定条件的整数集

给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。输入格式:输入在一行中给出A。输出格式:输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。#include<stdio.h>int main(void){ int n, i, j, k, flag=1; scanf_s("%d", &n); int a[4] = { n, n + 1, n + 2, n + 3 }; for (

2021-01-21 17:31:33 86

空空如也

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

TA关注的人

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