- 博客(68)
- 收藏
- 关注
原创 # L2-3 完全二叉树的层序遍历 (25分)
L2-3 完全二叉树的层序遍历 (25分)一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树。对于深度为 D 的,有 N 个结点的二叉树,若其结点对应于相同深度完美二叉树的层序遍历的前 N 个结点,这样的树就是完全二叉树。给定一棵完全二叉树的后序遍历,请你给出这棵树的层序遍历结果。输入格式:输入在第一行中给出正整数 N(≤30),即树中结点个数。第二行给出后序遍历序列,为 N 个不超过 100 的正整数。同一行中所有数字都以空格分隔。输出格式:在一行中输出该树的层序遍历序列
2021-04-05 17:13:07
713
原创 # 1053 Path of Equal Weight (30 分)(DFS具体路径)
1053 Path of Equal Weight (30 分)(DFS具体路径)Given a non-empty tree with root R, and with weight Wi assigned to each tree node Ti . The weight of a path from R to L is defined to be the sum of the weights of all the nodes along the path from R to any leaf
2021-04-04 21:05:33
125
原创 # 1086 Tree Traversals Again (25 分)
1086 Tree Traversals Again (25 分)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
2021-03-29 21:24:47
158
原创 # 1046 Shortest Distance (20 分)
1046 Shortest Distance (20 分)The task is really simple: given N exits on a highway which forms a simple cycle, you are supposed to tell the shortest distance between any pair of exits.Input Specification:Each input file contains one test case. For each
2021-03-29 20:44:40
97
原创 # 1020 Tree Traversals (25 分)
1020 Tree Traversals (25 分)Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and inorder traversal sequences, you are supposed to output the level order traversal sequence of the corresponding binary tree.Inpu
2021-03-26 20:09:22
68
原创 # 1008 Elevator (20 分)
1008 Elevator (20 分)The highest building in our city has only one elevator. A request list is made up with N positive numbers. The numbers denote at which floors the elevator will stop, in specified order. It costs 6 seconds to move the elevator up one fl
2021-03-24 16:19:40
87
原创 # 1004 Counting Leaves (30 分)
1004 Counting Leaves (30 分)A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child.Input Specification:Each input file contains one test case. Each case starts with a line containing 0<N
2021-03-24 11:02:17
70
原创 # 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 in each city and the length of each road between any pai
2021-03-24 09:52:11
71
原创 # 1002 A+B for Polynomials (25 分)
1002 A+B for Polynomials (25 分)1002 A+B for Polynomials (25 分)This time, you are supposed to find A+B where A and B are two polynomials.Input Specification:Each input file contains one test case. Each case occupies 2 lines, and each line contains the i
2021-03-18 20:57:10
101
原创 # 1001 A+B Format (20 分)
1001 A+B Format (20 分)Calculate a+b and output the sum in standard format – that is, the digits must be separated into groups of three by commas (unless there are less than four digits).Input Specification:Each input file contains one test case. Each ca
2021-03-18 20:09:01
111
原创 # c++万能头文件
c++万能头文件// C++ includes used for precompiling -*- C++ -*- // Copyright (C) 2003-2014 Free Software Foundation, Inc.//// This file is part of the GNU ISO C++ Library. This library is free// software; you can redistribute it and/or modify it under the
2021-03-18 19:43:42
193
转载 # c++万能头文件
c++万能头文件// C++ includes used for precompiling -*- C++ -*- // Copyright (C) 2003-2014 Free Software Foundation, Inc.//// This file is part of the GNU ISO C++ Library. This library is free// software; you can redistribute it and/or modify it under the
2021-03-18 19:41:50
1328
原创 # 质数相加(eular)
质数相加(eular)代码如下超时了,这是我没有想到的,能力有限,没法再改进了#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxnum = 1e6 + 10;vector<int> prime(maxnum);vector<int> s(maxnum, 1);int k = 0;void eular(){ s[0] = s[1] = 0;
2021-03-12 17:30:07
218
原创 # 最长上升子序列(dp)
最长上升子序列(dp)LIS是最长上升子序列。什么是最长上升子序列? 就是给你一个序列,请你在其中求出一段最长严格上升的部分,它不一定要连续。就像这样:2, 3, 4, 7 和 2, 3, 4, 6 就是序列 2 5 3 4 1 7 6 的两个上升子序列,最长的长度是 4代码如下#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ int n; scanf("%d", &am
2021-03-12 16:55:20
96
原创 # B - Anti-knapsack
B - Anti-knapsack代码如下#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ ll t; cin >> t; while (t--) { ll n, k; cin >> n >> k; vector<ll> ans; for (ll i = k + 1; i <= n; i++) {
2021-03-10 22:01:15
173
原创 # A - Add and Divide
A - Add and Divide代码如下#include<bits/stdc++.h>using namespace std;typedef long long ll;ll exam(ll a, ll b, ll y){ int cnt = 0; if (b == 1) { b++; cnt++; } b += y; while (a >= b) { a = a / b; cnt++; } return (cnt + 1 + y);
2021-03-10 21:59:26
169
原创 # B - Fair Numbers
B - Fair Numbers暴力求解代码如下#include<bits/stdc++.h>using namespace std;typedef long long ll;bool exam(ll n){ ll i = n; while (i) { if (i % 10 != 0 && n % (i % 10) != 0) //单位为0时不用除 return false; i /= 10; } return true;}int
2021-03-10 17:05:42
117
原创 # A - PERFECT NUMBER PROBLEM
A - PERFECT NUMBER PROBLEM思路:在编译器上跑出五个数,用了十五分钟,然后输出就行代码如下#include<bits/stdc++.h>using namespace std;typedef long long ll;/*int main(){ for (ll i = 6; i <= 1e11; i++) { ll sum = 0; for (ll j = 1; j * j <= i; j++) { if (i %
2021-03-10 16:40:17
100
原创 # D - Staircase Sequences
D - Staircase Sequences思路:代码如下#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ ll n, ans = 0; cin >> n; while (n % 2 == 0) n /= 2; for (ll i = 1; i * i <= n; i ++) { if (n % i == 0) { if (i
2021-03-09 21:06:09
150
原创 # 404. 左叶子之和
404. 左叶子之和计算给定二叉树的所有左叶子之和。示例: 3 / \ 9 20 / \ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24代码如下:逻辑方法/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right
2021-03-06 11:17:27
69
原创 # 剑指 Offer 32 - II. 从上到下打印二叉树 II(层序遍历)
剑指 Offer 32 - II. 从上到下打印二叉树 II(层序遍历)从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]] 提示:节点总数 <= 1000思路:层序遍历,不同层分在一起,故要引入cnt,计算当前层的节点数代码如
2021-03-04 22:12:32
146
1
原创 # 剑指 Offer 28. 对称的二叉树
剑指 Offer 28. 对称的二叉树请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3示例 1:输入:root = [1,2,2,3,4,4,3]输出:tru
2021-03-04 21:47:17
117
1
原创 # 面试题 04.02. 最小高度树(平衡树高度最小化)
面试题 04.02. 最小高度树给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5 思路:数组的中间值做根,小的做左子树,大的做右子树,实现高度最小化代码如下/** * Definition for a
2021-03-04 21:17:13
172
2
原创 # 7-43 字符串关键字的散列映射 (25 分)
7-43 字符串关键字的散列映射 (25 分)给定一系列由大写英文字母组成的字符串关键字和素数P,用移位法定义的散列函数H(Key)将关键字Key中的最后3个字符映射为整数,每个字符占5位;再用除留余数法将整数映射到长度为P的散列表中。例如将字符串AZDEG插入长度为1009的散列表中,我们首先将26个大写英文字母顺序映射到整数0~25;再通过移位将其映射为3×32^2 +4×32+6=3206;然后根据表长得到3206 % 1009 = 179,即是该字符串的散列映射位置。发生冲突时请用平方探测法解
2021-03-03 21:30:52
286
1
原创 # 7-45 航空公司VIP客户查询 (25 分)
7-45 航空公司VIP客户查询 (25 分)不少航空公司都会提供优惠的会员服务,当某顾客飞行里程累积达到一定数量后,可以使用里程积分直接兑换奖励机票或奖励升舱等服务。现给定某航空公司全体会员的飞行记录,要求实现根据身份证号码快速查询会员里程积分的功能。输入格式:输入首先给出两个正整数N(≤10^5 )和K(≤500)。其中K是最低里程,即为照顾乘坐短程航班的会员,航空公司还会将航程低于K公里的航班也按K公里累积。随后N行,每行给出一条飞行记录。飞行记录的输入格式为:18位身份证号码(空格)飞行
2021-03-02 21:55:59
288
原创 # 7-49 打印学生选课清单 (字符串转成数字)(25 分)
7-49 打印学生选课清单 (25 分)假设全校有最多40000名学生和最多2500门课程。现给出每门课的选课学生名单,要求输出每个前来查询的学生的选课清单。输入格式:输入的第一行是两个正整数:N(≤40000),为前来查询课表的学生总数;K(≤2500),为总课程数。此后顺序给出课程1到K的选课学生名单。格式为:对每一门课,首先在一行中输出课程编号(简单起见,课程从1到K编号)和选课学生总数(之间用空格分隔),之后在第二行给出学生名单,相邻两个学生名字用1个空格分隔。学生姓名由3个大写英文字母+1位
2021-03-02 20:30:14
606
原创 # 7-50 畅通工程之局部最小花费问题(最小生成树问题)(cruscal算法) (35 分)
7-50 畅通工程之局部最小花费问题(最小生成树问题)(cruscal算法) (35 分)某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建快速路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全地区畅通需要的最低成本。输入格式:输入的第一行给出村庄数目N (1≤N≤100);随后的N(N−1)
2021-03-02 16:39:01
172
原创 # 7-51 两个有序链表序列的合并 (20 分)
7-51 两个有序链表序列的合并 (20 分)已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。输入样例:1 3 5 -12 4 6 8 10 -1输出样例:1 2 3 4 5 6 8 10代码如下#inclu
2021-03-02 16:09:38
147
原创 # 7-52 两个有序链表序列的交集 (20 分)
7-52 两个有序链表序列的交集 (20 分)已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的交集新链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出两个输入序列的交集序列,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。输入样例:1 2 5 -12 4 5 8 10 -1输出样例:2 5思路:当两个数组有相同的一对数时,消耗掉这一对数字1
2021-03-01 22:14:13
113
2
原创 # 7-53 两个有序序列的中位数 (25 分)
7-53 两个有序序列的中位数 (25 分)已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列A0 ,A1 ,⋯,AN−1 的中位数指A(N−1)/2 的值,即第⌊(N+1)/2⌋个数(A0 为第1个数)。输入格式:输入分三行。第一行给出序列的公共长度N(0<N≤100000),随后每行输入一个序列的信息,即N个非降序排列的整数。数字用空格间隔。输出格式:在一行中输出两个输入序列的并集序列的中位数。输入样例1:51 3 5
2021-03-01 21:54:11
100
原创 # 7-42 整型关键字的散列映射 (25 分)
7-42 整型关键字的散列映射 (25 分)给定一系列整型关键字和素数P,用除留余数法定义的散列函数H(Key) = Key % P将关键字映射到长度为P的散列表中。用线性探测法解决冲突。输入格式:输入第一行首先给出两个正整数N(≤1000)和P(≥N的最小素数),分别为待插入的关键字总数、以及散列表的长度。第二行给出N个整型关键字。数字间以空格分隔。输出格式:在一行内输出每个整型关键字在散列表中的位置。数字间以空格分隔,但行末尾不得有多余空格。输入样例:4 524 15 61 88输出
2021-03-01 21:46:43
201
原创 # 7-41 PAT排名汇总 (同分排名问题)(25 分)
7-41 PAT排名汇总 (25 分)计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供参考标准(网址http://www.patest.cn)。每次考试会在若干个不同的考点同时举行,每个考点用局域网,产生本考点的成绩。考试结束后,各个考点的成绩将即刻汇总成一张总的排名表。现在就请你写一个程序自动归并各个考点的成绩并生成总排名表。输入
2021-03-01 21:01:21
121
原创 # 7-40 奥运排行榜 (25 分)
7-40 奥运排行榜 (25 分)每年奥运会各大媒体都会公布一个排行榜,但是细心的读者发现,不同国家的排行榜略有不同。比如中国金牌总数列第一的时候,中国媒体就公布“金牌榜”;而美国的奖牌总数第一,于是美国媒体就公布“奖牌榜”。如果人口少的国家公布一个“国民人均奖牌榜”,说不定非洲的国家会成为榜魁…… 现在就请你写一个程序,对每个前来咨询的国家按照对其最有利的方式计算它的排名。输入格式:输入的第一行给出两个正整数N和M(≤224,因为世界上共有224个国家和地区),分别是参与排名的国家和地区的总个数、以
2021-03-01 16:38:22
183
原创 # 7-38 寻找大富翁 (25 分)
7-38 寻找大富翁 (25 分)胡润研究院的调查显示,截至2017年底,中国个人资产超过1亿元的高净值人群达15万人。假设给出N个人的个人资产值,请快速找出资产排前M位的大富翁。输入格式:输入首先给出两个正整数N(≤10^6 )和M(≤10),其中N为总人数,M为需要找出的大富翁数;接下来一行给出N个人的个人资产值,以百万元为单位,为不超过长整型范围的整数。数字间以空格分隔。输出格式:在一行内按非递增顺序输出资产排前M位的大富翁的个人资产值。数字间以空格分隔,但结尾不得有多余空格。输入样
2021-02-24 18:34:17
260
原创 # 7-37 模拟EXCEL排序 (25 分)
7-37 模拟EXCEL排序 (25 分)Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。输入格式:输入的第一行包含两个正整数N(≤10^5 ) 和C,其中N是纪录的条数,C是指定排序的列号。之后有 N行,每行包含一条学生纪录。每条学生纪录由学号(6位数字,保证没有重复的学号)、姓名(不超过8位且不包含空格的字符串)、成绩([0, 100]内的整数)组成,相邻属性用1个空格隔开。输出格式:在N行中输出按要求排序后的结果,即:当C=1时,按学号递增排序;当C=2时,按姓名的非
2021-02-24 18:28:51
197
原创 # 7-29 修理牧场 (最小堆)(25 分)
7-29 修理牧场 (最小堆)(25 分)农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li 个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是Li 的总和。但是农夫自己没有锯子,请人锯木的酬金跟这段木头的长度成正比。为简单起见,不妨就设酬金等于所锯木头的长度。例如,要将长度为20的木头锯成长度为8、7和5的三段,第一次锯木头花费20,将木头锯成12和8;第二次锯木头花费12,将长度为12的木头锯成7和5,总花费为32。如果第一次将木头锯成15
2021-02-24 18:17:01
126
原创 # 7-26 Windows消息队列 (25 分)
7-26 Windows消息队列 (25 分)消息队列是Windows系统的基础。对于每个进程,系统维护一个消息队列。如果在进程中有特定事件发生,如点击鼠标、文字改变等,系统将把这个消息加到队列当中。同时,如果队列不是空的,这一进程循环地从队列中按照优先级获取消息。请注意优先级值低意味着优先级高。请编辑程序模拟消息队列,将消息加到队列中以及从队列中获取消息。输入格式:输入首先给出正整数N(≤10^5 ),随后N行,每行给出一个指令——GET或PUT,分别表示从队列中取出消息或将消息添加到队列中。如
2021-02-24 16:15:14
166
原创 # 7-25 朋友圈 (并查集)(25 分)
7-25 朋友圈 (并查集)(25 分)某学校有N个学生,形成M个俱乐部。每个俱乐部里的学生有着一定相似的兴趣爱好,形成一个朋友圈。一个学生可以同时属于若干个不同的俱乐部。根据“我的朋友的朋友也是我的朋友”这个推论可以得出,如果A和B是朋友,且B和C是朋友,则A和C也是朋友。请编写程序计算最大朋友圈中有多少人。输入格式:输入的第一行包含两个正整数N(≤30000)和M(≤1000),分别代表学校的学生总数和俱乐部的个数。后面的M行每行按以下格式给出1个俱乐部的信息,其中学生从1~N编号:第i个俱乐部
2021-02-24 15:43:37
121
原创 # 7-24 树种统计 (25 分)
7-24 树种统计 (25 分)随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类。请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比。输入格式:输入首先给出正整数N(≤10^5 ),随后N行,每行给出卫星观测到的一棵树的种类名称。种类名称由不超过30个英文字母和空格组成(大小写不区分)。输出格式:按字典序递增输出各种树的种类名称及其所占总数的百分比,其间以空格分隔,保留小数点后4位。输入样例:29Red AlderAshAspenBasswoodAs
2021-02-24 15:23:51
132
原创 # 7-23 还原二叉树 (25 分)
7-23 还原二叉树 (25 分)给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。输入格式:输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。输出格式:输出为一个整数,即该二叉树的高度。输入样例:9ABDFGHIECFDHGIBEAC输出样例:5代码如下#include<bits/stdc++.h>using namespace std;typedef
2021-02-23 22:33:23
136
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人