算法笔记
算法笔记刷题,包括codeup和pat的
Liberalspirit
这个作者很懒,什么都没留下…
展开
-
A1108 Finding Average (20 分)
//主要是解决字符串是否能转换为符合题目要求的数字--逻辑判断就是很常规的分类讨论(好在题目控制输入在小数点后两位)。。具体解释见注释,需要注意的是输出的格式//注意一下cur++的位置还有cur的范围判断//最后一个点过不去因为样例会出现 2. 小数点后面没有小数的场景--但其实也是符合条件的//res的负号要最后乘,在每一次return回正确数据之前进行数字范围的判断!//吐槽:代码10分钟,debug半小时。。。#include<iostream>#include&原创 2021-03-12 20:40:10 · 119 阅读 · 0 评论 -
A1153
记录一下错误:1.NA的条件没有判断 2.只有vector才有resize和sort 3.cin和cout速度较慢,endl换行可以用"\n"代替或者直接使用scanf和printf 3.map里的string只能是string类型而不是char[]学习到的新方法:1.cmp的写法可以使用三元式子更加简洁。 2.struct结构体元素的可以直接用{member1,member2}直接构造 3.map可以用unordered_map代替加快速度。 4.关于迭代器的循环的新方法 for (auto it..原创 2021-03-03 16:11:38 · 211 阅读 · 1 评论 -
A1045 Favorite Color Stripe (30分)
#include<cstdio>#include<stdlib.h>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<set>#include<vector>#include<map>#include<queue>#include<stack>#in.原创 2020-07-13 15:02:05 · 156 阅读 · 0 评论 -
A1087 All Roads Lead to Rome (30分)
#include<cstdio>#include<stdlib.h>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<set>#include<vector>#include<map>#include<queue>#include<stack>#in.原创 2020-07-10 23:57:03 · 215 阅读 · 0 评论 -
A1072 Gas Station (30分)
常规的图的Dijkstra求最短路径的方式但是需要对题目有写理解以及稍微处理一下数据,注意一点细节。。。pat不能速成。。况且基础我还不好。刷的时候还是有点难受的。。硬学关于strToNum的方法也很多细节都写错了。。比如s[i]-‘0’(没有转成字符串),判断s[0]=‘G’的时候写成了s[1]所以可以看到有很多的测试输出。。。我早晚死在自己造的坑上计算平均值两种方法均可:直接计算。累加后/n计算都行#include<cstdio>#include<stdlib.原创 2020-07-10 22:25:27 · 176 阅读 · 0 评论 -
A1018 Public Bike Management (30分)
注意点:如下错误是因为他要求的调整是从0沿着最优路径到终点沿着顺序跳转例如:因此最开始的做法是直接算出最优路径的bike的数量再减去整条路径的节点都达到完美的时候需要的bike获得的差值是需要send的自行车,如果差值<0 那么就应该送回back自行车,而send 为0:但是很显然上面的例子就不符合所以用这样的方法:给出错误代码:会导致最终的测试点有两个过不去#include<cstdio>#include<stdlib.h>#inclu...原创 2020-07-09 17:23:50 · 241 阅读 · 0 评论 -
A1003 Emergency (25分)
#include<cstdio>#include<stdlib.h>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<set>#include<vector>#include<map>#include<queue>#include<stack>#in.原创 2020-07-09 10:21:42 · 166 阅读 · 0 评论 -
A1021 Deepest Root (25分)
运行超时的代码以及算法优化的代码:运行超时:#include<cstdio>#include<stdlib.h>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<set>#include<vector>#include<map>#include<queue>原创 2020-07-08 00:39:02 · 139 阅读 · 0 评论 -
A1013 Battle Over Cities (25分)
#include<cstdio>#include<stdlib.h>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<set>#include<vector>#include<map>#include<queue>#include<stack>#in.原创 2020-07-07 20:58:25 · 143 阅读 · 0 评论 -
A1098 Insertion or Heap Sort (25分)
#include<cstdio>#include<stdlib.h>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<set>#include<vector>#include<map>#include<queue>#include<stack>#in.原创 2020-07-05 22:12:04 · 1725 阅读 · 0 评论 -
A1066 Root of AVL Tree (25分)
#include<cstdio>#include<stdlib.h>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<set>#include<vector>#include<map>#include<queue>#include<stack>#in.原创 2020-07-04 21:52:07 · 177 阅读 · 0 评论 -
A1064 Complete Binary Search Tree (30分)
有疑问:这个在dev C++中编译不会出问题,但是在pat里会报编译错误:#include<cstdio>#include<stdlib.h>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<set>#include<vector>#include<map>#inclu原创 2020-07-04 15:34:00 · 171 阅读 · 0 评论 -
先序中序求后序/先序中序求层序/后序中序求先序/后序中序求层序(不用构造二叉树)
#include<cstdio>#include<stdlib.h>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<set>#include<vector>#include<map>#include<queue>#include<stack>#in.原创 2020-07-01 13:16:16 · 341 阅读 · 0 评论 -
先序,后序,层次分别和中序序列创建二叉树(层次遍历方法遍历二叉树)
#include<cstdio>#include<stdlib.h>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<set>#include<vector>#include<map>#include<queue>#include<stack>#in.原创 2020-07-01 10:30:01 · 907 阅读 · 0 评论 -
A1091 Acute Stroke (30分)
#include<cstdio>#include<stdlib.h>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<set>#include<vector>#include<map>#include<queue>#include<stack>#in.原创 2020-06-30 12:56:28 · 196 阅读 · 0 评论 -
1103 Integer Factorization (30分)
#include<cstdio>#include<stdlib.h>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<set>#include<vector>#include<map>#include<queue>#include<stack>#in.原创 2020-06-29 23:48:28 · 204 阅读 · 0 评论 -
A1097 Deduplication on a Linked List (25分)
#include<cstdio>#include<stdlib.h>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<set>#include<vector>#include<map>#include<queue>#include<stack>#in.原创 2020-06-29 14:18:05 · 186 阅读 · 0 评论 -
A1052 Linked List Sorting (25分)
#include<cstdio>#include<stdlib.h>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<set>#include<vector>#include<map>#include<queue>#include<stack>#in.原创 2020-06-29 11:53:11 · 166 阅读 · 0 评论 -
1100 Mars Numbers (20分)
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<set>#include<vector>#include<set>#include<map>#include<string>using namespace std;string u.原创 2020-05-21 14:52:57 · 126 阅读 · 0 评论 -
1059 Prime Factors (25分)
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<set>#include<map>using namespace std;const int maxn=100100;typedef long long ll;bool Hash[maxn]={0};int isPr.原创 2020-05-19 14:16:43 · 157 阅读 · 0 评论 -
1096 Consecutive Factors (20分)
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<set>#include<map>using namespace std;const int maxn=10010;typedef long long ll;bool Hash[maxn]={0};int isPri.原创 2020-05-19 12:28:08 · 154 阅读 · 0 评论 -
A1029
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<set>#include<map>using namespace std;typedef long long ...原创 2020-05-03 23:10:44 · 153 阅读 · 0 评论 -
算法笔记4.2 问题 A: 谁是你的潜在朋友
题目描述 “臭味相投”——这是我们描述朋友时喜欢用的词汇。两个人是朋友通常意味着他们存在着许多共同的兴趣。然而作为一个宅男,你发现自己与他人相互了解的机会并不太多。幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友。首先你对借阅记录进行了一番整理,把N个读者依次编号为1,2,…,N,把M本书依次编号为1,2,…,M。同时,按照...原创 2019-10-13 18:46:36 · 146 阅读 · 0 评论 -
算法笔记3.6问题 G: 比较字符串
题目描述输入两个字符串,比较两字符串的长度大小关系。输入输入第一行表示测试用例的个数m,接下来m行每行两个字符串A和B,字符串长度不超过50。输出输出m行。若两字符串长度相等则输出AisequallongtoB;若A比B长,则输出AislongerthanB;否则输出AisshorterthanB。样例输入2abc xybbb ccc...原创 2019-10-05 21:53:25 · 220 阅读 · 0 评论 -
算法笔记2.5 问题 H: 例题6-3 冒泡排序
题目描述从键盘上输入10个整数,用冒泡法对这10个数进行排序(由小到大)。输入以空格分隔的10个整数输出依次输出排好序的10个整数,每个数占一行。样例输入1 3 5 7 9 2 4 6 8 0样例输出0123456789#include <iostream>#include <math.h>#include...原创 2019-09-10 21:13:10 · 195 阅读 · 0 评论 -
算法笔记2.5 问题 C: 习题6-6 杨辉三角
题目描述按要求输入如下格式的杨辉三角11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1最多输出10层输入输入只包含一个正整数n,表示将要输出的杨辉三角的层数。输出对应于该输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开样例输入5样例输出11 11 2 11 3 3 11 4 6 4 1#...原创 2019-09-10 20:13:39 · 276 阅读 · 0 评论 -
算法笔记2.5 问题 A: 习题6-4 有序插入
题目描述有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入到数组中。假设数组长度为10,数组中前9个数(这9个数要求从键盘上输入,输入时要满足自小到大的输入顺序)已经按从小到大进行排序。然后再从键盘上输入一个整数,将此整数插入到前有序的9个数中,使得最终的10个数依然是从小到大有序的。输入第一行输入以空格分隔的9个整数数,要求按从小到大的顺序输入。第二行输入一...原创 2019-09-10 19:44:50 · 291 阅读 · 0 评论 -
算法笔记2.4 I 习题5-10 分数序列求和
题目描述有如下分数序列2/1,3/2,5/3,8/5,13/8,21/13…求出次数列的前20项之和。请将结果的数据类型定义为double类型。输入无输出小数点后保留6位小数,末尾输出换行。样例输入无样例输出32.660261#include <iostream>#include <math.h>using na...原创 2019-09-09 18:13:20 · 193 阅读 · 0 评论 -
算法笔记3.6 问题 F: 数组逆置
题目描述输入一个字符串,长度小于等于200,然后将数组逆置输出。输入测试数据有多组,每组输入一个字符串。输出对于每组输入,请输出逆置后的结果。样例输入tianqin样例输出niqnait提示注意输入的字符串可能会有空格#include<iostream>#include<string>#include<s...原创 2019-10-05 21:34:49 · 136 阅读 · 0 评论 -
算法笔记3.6 问题 D: 单词替换
题目描述输入一个字符串,以回车结束(字符串长度<=100)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。输入多组数据。每组数据输入包括3行,第1行是包含多个单词的字符串 s,第2行是待替换的单词a,(长度<=100)第3行是a将被替换的单词b。(长度<=100)s...原创 2019-10-05 21:05:50 · 478 阅读 · 0 评论 -
算法笔记3.6 问题 B: 首字母大写
题目描述对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。在字符串中,单词之间通过空白符分隔,空白符包括:空格(' ')、制表符('\t')、回车符('\r')、换行符('\n')。输入输入一行:待处理的字符串(长度小于100)。输出可能有多组测试数据,对于每组数据,输出一行:转换后的字符串。样例输入if so, you alr...原创 2019-10-05 17:06:53 · 357 阅读 · 0 评论 -
算法笔记3.6 问题 A: 字符串连接
题目描述不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来。输入每一行包括两个字符串,长度不超过100。输出可能有多组测试数据,对于每组数据,不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来。输出连接后的字符串。样例输入abc def样例输出abcdef#include<iostream&...原创 2019-10-05 16:49:34 · 210 阅读 · 0 评论 -
算法笔记3.4 问题 E: 日期累加
题目描述设计一个程序能计算一个日期加上若干天后是什么日期。输入输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。输出输出m行,每行按yyyy-mm-dd的个数输出。样例输入12008 2 3 100样例输出2008-05-13#include<iostream>#include<string>#i...原创 2019-09-26 20:38:05 · 174 阅读 · 0 评论 -
算法笔记 3.4 问题 D: 日期类
题目描述编写一个日期类,要求按xxxx-xx-xx的格式输出日期,实现加一天的操作。输入输入第一行表示测试用例的个数m,接下来m行每行有3个用空格隔开的整数,分别表示年月日。测试数据不会有闰年。输出输出m行。按xxxx-xx-xx的格式输出,表示输入日期的后一天的日期。样例输入21999 10 202001 1 31样例输出1999-10-21200...原创 2019-09-26 20:30:53 · 151 阅读 · 0 评论 -
算法笔记3.4 问题 C: 打印日期
题目描述给出年分m和一年中的第n天,算出第n天是几月几号。输入输入包括两个整数y(1<=y<=3000),n(1<=n<=366)。输出可能有多组测试数据,对于每组数据,按 yyyy-mm-dd的格式将输入中对应的日期打印出来。样例输入2013 602012 3002011 3502000 211样例输出2013-03-012...原创 2019-09-26 20:21:55 · 197 阅读 · 0 评论 -
算法笔记 2.5 问题 I: 例题6-4 矩阵转置
题目描述将一个2行3列的矩阵(二维数组)行列互换,存储到另一个3行2列的矩阵中。要求以整型数据为例来解答。输入输入2行数据,每行3个整数,以空格分隔。输出行列互换后的矩阵,3行,每行2个数据,以空格分隔。样例输入1 2 34 5 6样例输出1 42 53 6#include <iostream>#include <math...原创 2019-09-11 19:08:14 · 443 阅读 · 0 评论 -
算法笔记2.7 问题 D: C语言10.15
题目描述输入3个字符串,按从小到大的顺序输出。要求使用指针的方法进行处理。输入3行,每行一个用字符串。保证每个字符串的长度不超过20。输出按从小到大的顺序输出这3个字符串,每个字符串一行。请注意行尾输出换行。样例输入ChinaCLOCKdeal样例输出CLOCKChinadeal#include <stdio.h>#inclu...原创 2019-09-14 14:20:20 · 221 阅读 · 0 评论 -
算法笔记 3.6 问题 E: 字符串去特定字符
题目描述输入字符串s和字符c,要求去掉s中所有的c字符,并输出结果。输入测试数据有多组,每组输入字符串s和字符c。输出对于每组输入,输出去除c字符后的结果。样例输入goaoda样例输出good#include<iostream>#include<string>#include<string.h>using ...原创 2019-10-05 21:24:32 · 298 阅读 · 1 评论 -
算法笔记3.6 问题 C: 字符串的查找删除
题目描述给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。输入输入只有1组数据。输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。输出删除输入的短字符串(不区分大小写)并去掉空格,输出。样例输入in#include int main(){printf(" Hi ");}样例输出#cludetma...转载 2019-10-05 17:56:59 · 238 阅读 · 0 评论 -
算法笔记3.5 问题 D: 八进制
题目描述输入一个整数,将其转换成八进制数输出。输入输入包括一个整数N(0<=N<=100000)。输出可能有多组测试数据,对于每组数据,输出N的八进制表示数。样例输入985样例输出11105#include<iostream>#include<string>#include<string.h>...原创 2019-10-05 16:46:37 · 214 阅读 · 0 评论