- 博客(47)
- 收藏
- 关注
原创 【个人代码及思路】PAT甲级:1066 Root of AVL Tree (25分)
PAT (Advanced Level) Practice1066 Root of AVL Tree (25分)An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child subtrees of any node differ by at most one; if at any time they differ by more than one, rebalancing
2020-10-08 18:01:21
179
2
原创 【个人代码及思路】PAT甲级:1060 Are They Equal (25分)
PAT (Advanced Level) Practice1060 Are They Equal (25分)If a machine can save only 3 significant digits, the float numbers 12300 and 12358.9 are considered equal since they are both saved as 0.123×105 with simple chopping. Now given the number of significa
2020-09-25 17:27:53
135
原创 【C/C++入门攻略】常用头文件下的函数介绍:algorithm
文章目录常用头文件下的函数介绍:algorithm1. max()、min()和abs()2. swap()3. reverse()4. next_permutation()5. fill()6. sort()7. lower_bound()和upper_bound()常用头文件下的函数介绍:algorithmC语言提供了很多实用的数学函数,如果要使用,需要在程序开头添加头文件cmath或者math.h。#include <algorithm>using namespace std;
2020-09-24 17:08:05
1545
原创 【C/C++入门攻略】常用头文件下的函数介绍:目录
文章目录常用头文件下的函数介绍:目录1. cmath/math.h2. cstring/string.h3. algorithm常用头文件下的函数介绍:目录很多常用的函数通常需要添加头文件,下面进行总结常用的头文件下的函数。本文参考并总结了晴神的《算法笔记》与刘神的《算法竞赛入门经典》中的精华内容,并加入了自己的理解,以实用第一的目的来撰写此文。1. cmath/math.h【C/C++全套入门攻略】常用头文件下的函数介绍:cmath/math.h2. cstring/string.h【C/C
2020-09-23 18:00:40
300
1
原创 【C/C++入门攻略】常用头文件下的函数介绍:cstring/string.h
文章目录常用头文件下的函数介绍:cstring/string.h1. strlen()2. strcmp()3. strcpy()4. strcat()常用头文件下的函数介绍:cstring/string.hC语言提供了很多实用的数学函数,如果要使用,需要在程序开头添加头文件cstring或者string.h。//二者选一#include <cstring>#include <string.h>1. strlen()strlen(str)用于得到字符数组中第一个\0前
2020-09-23 17:41:43
658
1
原创 【C/C++入门攻略】常用头文件下的函数介绍:cmath/math.h
文章目录常用头文件下的函数介绍:cmath/math.h1. fabs(double x)2. floor(double x)和ceil(double x)3. pow(double r, double p)4. sqrt(double x)5. log(double x)6. sin(double x)、cos(double x)和tan(double x)7. asin(double x)、acos(double x)和atan(double x)8. round(double x)常用头文件下的函数
2020-09-23 17:02:28
2662
1
原创 【C/C++入门攻略】C++标准模板库(STL)用法介绍:pair
文章目录C++标准模板库(STL)用法介绍:pair1. pair声明2. pair访问3. pair常用函数4. pair用途C++标准模板库(STL)用法介绍:pairpair:映射,STL容器之一,可以将任何基本类型(包括STL容器)映射到任何基本类型(包括STL容器)。使用map前需要添加:#include <map>using namespace std;1. pair声明map是一个模板类,所以使用前需要声明。map<typename1, typename2
2020-09-23 13:22:38
313
1
原创 【C/C++入门攻略】C++标准模板库(STL)用法介绍:stack
文章目录C++标准模板库(STL)用法介绍:stack1. stack声明2. stack访问3. stack常用函数4. stack用途C++标准模板库(STL)用法介绍:stackstack:栈,在STL中主要则是实现了一个后进先出的容器。使用stack前需要添加:#include <stack>using namespace std;1. stack声明stack是一个模板类,所以使用前需要声明。声明stack<typename> st;typenam
2020-09-23 13:18:14
227
原创 【C/C++入门攻略】C++标准模板库(STL)用法介绍:priority_queue
文章目录C++标准模板库(STL)用法介绍:priority_queue1. priority_queue声明2. priority_queue访问3. priority_queue常用函数4. priority_queue用途C++标准模板库(STL)用法介绍:priority_queuepriority_queue:优先队列,STL容器之一,底层基于堆进行实现。使用priority_queue前需要添加:#include <queue>using namespace std;
2020-09-22 23:47:09
259
原创 【C/C++入门攻略】C++标准模板库(STL)用法介绍:queue
文章目录C++标准模板库(STL)用法介绍:queue1. queue声明2. queue访问3. queue常用函数4. queue用途C++标准模板库(STL)用法介绍:queuequeue:队列,在STL中主要则是实现了一个先进先出的容器。使用queue前需要添加:#include <queue>using namespace std;1. queue声明queue是一个模板类,所以使用前需要声明。声明queue<typename> q;typenam
2020-09-22 20:53:58
263
原创 【C/C++入门攻略】C++标准模板库(STL)用法介绍:map
文章目录C++标准模板库(STL)用法介绍:map1. map声明2. map访问3. map常用函数4. map用途C++标准模板库(STL)用法介绍:mapmap:映射,STL容器之一,可以将任何基本类型(包括STL容器)映射到任何基本类型(包括STL容器)。使用map前需要添加:#include <map>using namespace std;1. map声明map是一个模板类,所以使用前需要声明。map<typename1, typename2> mp;
2020-09-22 20:13:54
321
原创 【C/C++入门攻略】C++标准模板库(STL)用法介绍:string
C++标准模板库(STL)用法介绍:stringstring:字符串,STL容器之一,类似字符数组,但比比字符数组更容易处理。使用string前需要添加:#include <string>using namespace std;string声明string是一个模板类,所以使用前需要声明。声明string str;初始化string str = "string";string访问一般有两种访问string内元素的方法:通过下标或者string的迭代器(1)通过下
2020-09-22 16:46:56
168
1
原创 【C/C++入门攻略】C++标准模板库(STL)用法介绍:set
C++标准模板库(STL)用法介绍:setset:集合,STL容器之一,可以理解成一个内部自动有序且不含重复元素的容器。使用set前需要添加:#include <set>using namespace std;set声明set是一个模板类,所以使用前需要声明。定义set<typename> name;typename可以是任何基本类型,也可以是STL标准容器二维两个维都是容器set<set<typename> > name;
2020-09-22 12:58:00
669
1
原创 【C/C++入门攻略】C++标准模板库(STL)用法介绍:vector
C++标准模板库(STL)用法介绍:vectorvector:向量,STL容器之一,可以理解成一个封装了多种操作变长数组。使用vector前需要添加:#include <vector>using namespace std;vector声明一维数组vector<typename> name;二维数组两个维数都可变长vector<vector<typename> > name;注:>>之间需要加空格,否则可能会被判定
2020-09-21 09:41:38
307
2
原创 【个人代码及思路】PAT甲级:PAT甲级:1023 Have Fun with Numbers (20分)
PAT (Advanced Level) Practice1023 Have Fun with Numbers (20分)Notice that the number 123456789 is a 9-digit number consisting exactly the numbers from 1 to 9, with no duplication. Double it we will obtain 246913578, which happens to be another 9-digit num
2020-09-13 20:42:31
106
原创 【C/C++入门攻略】C++标准模板库(STL)用法介绍:目录
C++:标准模板库(STL)用法介绍相信很多人跟我一样,在没了解STL之前,听到这么高大上的名字,以为是一个很难触及的神秘知识。但其实,STL并没有想象中那么难。相反,STL十分简单。那么,为什么我们要学习STL 呢?STL(Standard Template Library)即标准模板库,是C++高效的程序库。它是一个工具的存在,能帮助我们简化很多程序,免得我们自己去实现(比如变长数组、数组排序等等)。所以,把STL当成一个美化你程序的工具来看待。本文参考并总结了晴神的算法笔记与刘神的紫书中的精华内
2020-09-11 22:15:19
408
1
原创 【个人代码及思路】PAT甲级:PAT甲级:1024 Palindromic Number (25分)
PAT (Advanced Level) Practice1024 Palindromic Number (25分)A number that will be the same when it is written forwards or backwards is known as a Palindromic Number. For example, 1234321 is a palindromic number. All single digit numbers are palindromic num
2020-09-07 23:17:17
112
原创 【个人代码及思路】PAT甲级:PAT甲级:1059 Prime Factors (25分)
PAT (Advanced Level) Practice1059 Prime Factors (25分)Given any positive integer N, you are supposed to find all of its prime factors, and write them in the format N = p1k1×p2k2×⋯×pmk**m.Input Specification:Each input file contains one test case which g
2020-09-06 23:14:28
102
原创 【个人代码及思路】PAT乙级:1013 数素数 (20分)
PAT (Basic Level) Practice1013 数素数 (20分)令 P**i 表示第 i 个素数。现任给两个正整数 M≤N≤104,请输出 P**M 到 P**N 的所有素数。输入格式:输入在一行中给出 M 和 N,其间以空格分隔。输出格式:输出从 P**M 到 P**N 的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。输入样例:5 27输出样例:11 13 17 19 23 29 31 37 41 4347 53 59 61 67 71
2020-09-05 22:17:32
109
原创 【个人代码及思路】PAT甲级:1069 The Black Hole of Numbers (20分)
PAT (Advanced Level) Practice1069 The Black Hole of Numbers (20分)For any 4-digit integer except the ones with all the digits being the same, if we sort the digits in non-increasing order first, and then in non-decreasing order, a new number can be obtain
2020-09-04 21:24:07
104
原创 【个人代码及思路】PAT乙级:1019 数字黑洞 (20分)
PAT (Basic Level) Practice1019 数字黑洞 (20分)给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的 6174,这个神奇的数字也叫 Kaprekar 常数。例如,我们从6767开始,将得到7766 - 6677 = 10899810 - 0189 = 96219621 - 1269 = 83528532 -
2020-09-04 21:23:19
113
原创 【个人代码及思路】PAT乙级:1045 快速排序 (25分)
PAT (Basic Level) Practice1045 快速排序 (25分)著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?例如给定 N=5N = 5N=5, 排列是1、3、2、4、5。则:1 的左边没有元素,右边的元素都比它大,所以它可能是主元;尽管 3 的左边元素都比它小,但其右边的 2 比它小,所以
2020-08-27 17:53:26
99
原创 【个人代码及思路】PAT甲级:1101 Quick Sort (25分)
PAT (Advanced Level) Practice1101 Quick Sort (25分)There is a classical process named partition in the famous quick sort algorithm. In this process we typically choose one element as the pivot. Then the elements less than the pivot are moved to its left a
2020-08-27 17:52:32
86
原创 【个人代码及思路】PAT甲级:1093 Count PAT‘s (25分)
PAT (Advanced Level) Practice1093 Count PAT’s (25分)The string APPAPT contains two PAT's as substrings. The first one is formed by the 2nd, the 4th, and the 6th characters, and the second one is formed by the 3rd, the 4th, and the 6th characters.Now give
2020-08-27 00:50:54
106
原创 【个人代码及思路】PAT乙级:1040 有几个PAT (25分)
PAT (Basic Level) Practice1040 有几个PAT (25分)字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位(P),第 4 位(A),第 6 位(T);第二个 PAT 是第 3 位(P),第 4 位(A),第 6 位(T)。现给定字符串,问一共可以形成多少个 PAT?输入格式:输入只有一行,包含一个字符串,长度不超过105,只包含 P、A、T 三种字母。输出格式:在一行中输出给定字符串中包含多少个 PAT。由于结果可能比较大,只输出对
2020-08-27 00:49:44
119
原创 【个人代码及思路】PAT乙级:1023 组个最小数 (20分)
PAT (Basic Level) Practice1023 组个最小数 (20分)给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。现给定数字,请编写程序输出能够组成的最小的数。输入格式:输入在一行中给出 10 个非负整数,顺序表示我们拥有数字 0、数字 1、……数字 9 的个数。整数间用一个空格分隔。10 个数字的总个数不超
2020-08-22 21:29:04
125
原创 【个人代码及思路】PAT乙级:1020 月饼 (25分)
PAT (Basic Level) Practice1020 月饼 (25分)月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么我们最大收益策略应该是卖出全部 15 万吨第 2 种月饼、以及
2020-08-22 00:29:06
147
原创 【个人代码及思路】PAT甲级:1025 PAT Ranking (25分)
PAT (Advanced Level) Practice1025 PAT Ranking (25分)Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhejiang University. Each test is supposed to run simultaneously in several places, and the ranklists will
2020-06-03 16:40:08
121
原创 软件工程笔记
Software EngineeringThe Nature of SoftwareSoftware软件是:(1)指令的集合(计算机程序),通过执行这些指令可以满足预期的特性、功能和性能需求;(2)数据结构,使得程序可以合理利用信息;(3)软件描述信息,它以硬拷贝和虚拟形式存在,用来描述程序的操作和使用。Softwatre Characteristics(The differences between software and hardware)软件是被开发或设计的,而不是传统意义上的制造。软件
2020-05-22 12:49:05
1177
2
原创 【个人代码及思路】PAT乙级:1009 说反话 (20分)
PAT (Basic Level) Practice1009 说反话 (20分)给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例:Hello World Here I Come输出样例:Come
2020-05-18 22:42:08
139
原创 【个人代码及思路】PAT乙级:1022 D进制的A+B (20分)
PAT (Basic Level) Practice1022 D进制的A+B (20分)输入两个非负 10 进制整数 A 和 B (≤230−1),输出 A+B 的 D (1<D≤10)进制数。输入格式:输入在一行中依次给出 3 个整数 A、B 和 D。输出格式:输出 A+B 的 D 进制数。输入样例:123 456 8输出样例:1103个人代码#include<cstdio>int main() { int A, B, D, sum; sc
2020-05-18 08:07:15
161
原创 【个人代码及思路】PAT乙级:1036 跟奥巴马一起编程 (15分)
PAT (Basic Level) Practice1036 跟奥巴马一起编程 (15分)美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式:输入在一行中给出正方形边长 N(3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。输出格式:输出由给定字符 C 画出的正方形。但是注意到行间距比列间距大,所以为了
2020-05-17 21:39:46
210
原创 【个人代码及思路】PAT乙级:1032 挖掘机技术哪家强 (20分)
PAT (Basic Level) Practice1032 挖掘机技术哪家强 (20分)为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式:输入在第 1 行给出不超过 105 的正整数 N,即参赛人数。随后 N 行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从 1 开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。输出格式:在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一
2020-05-17 13:15:06
111
原创 【个人代码及思路】PAT乙级:1001 害死人不偿命的(3n+1)猜想 (15分)
1001 害死人不偿命的(3n+1)猜想 (15分)卡拉兹(Callatz)猜想:对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……我们今天的题目不是证明卡拉兹猜想
2020-05-16 22:03:30
154
原创 编译原理笔记
编译原理笔记文章目录编译原理笔记第一章 引论1.1 语言处理器1.2 一个编译器的结构第二章 一个简单的语法制导翻译器2.7 符号表2.7.1 为每个作用域设置一个符号表2.7.2 符号表的使用第三章 词法分析3.1 词法分析器的作用3.1.1 词法分析及语法分析3.1.2 词法单元、模式和词素3.1.3 词法单元的属性3.1.4 词法错误3.2 输入缓冲3.2.1 缓冲区对3.2.2 哨兵标记3.3 词法单元的规约3.3.1 串和语言3.3.2 语言上的运算3.3.3 正则表达式3.3.4 正则定义3
2020-05-11 22:37:31
3618
6
原创 数据库系统概论笔记
数据库系统概论绪论数据库DB数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库管理系统DBMS数据库管理系统是位于用户与操作系统之间的一层数据管理软件(计算机的基础软件)(1)数据定义功能(2)数据组织、存储和管理(3)数据操纵功能(4)数据库的事务管理和运行管理(5)数据库的建立和维护功能(6)其他功能数据库系统数据库系统是由数据库、数据库管理系统(及...
2020-04-27 08:54:32
977
原创 【个人代码及思路】PAT甲级:1002 A+B for Polynomials (25分)
PAT (Advanced Level) Practice1002 A+B for PolynomialsThis 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...
2020-02-15 20:18:24
167
原创 【个人代码及思路】PAT甲级:1001 A+B Format (20分)
PAT (Advanced Level) Practice1001 A+B FormatCalculate 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 fou...
2020-02-10 17:35:50
112
原创 【个人代码及思路】2017年12月CSP第二题:游戏
问题描述 有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向。 游戏开始,从1号小朋友开始顺时针报数,接下来每个小朋友的报数是上一个小朋友报的数加1。若一个小朋友报的数为k的倍数或其末位数(即数的个位)为k,则该小朋友被淘汰出局,不再参加以后的报数。当游...
2018-12-16 01:22:46
3116
9
原创 【个人代码及思路】2017年12月CSP第一题:最小差值
问题描述 给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。 输入格式 输入第一行包含一个整数n。 第二行包含n个正整数,相邻整数之间使用一个空格分隔。 输出格式 输出一个整数,表示答案。 样例输入 5 1 5 4 8 20 样例输出 1 样例说明 ...
2018-12-16 01:22:41
579
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人