自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 PAT A1063 Set Similarity(***STL--set的应用)

问题链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805409175420928Note:1 set容器内部自动有序,且不含重复元素2 注意compare函数中求两集合交集和并集的方法。首先求并集元素的变量totleNum的初始值要设为st[y].size(); 其次在y集合中找元素的语句...

2020-03-07 18:04:20 150

原创 PAT A1043 Is It a Binary Search Tree(***二叉搜索树的创建,遍历)

问题链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805440976633856Note:1 创建二叉搜索树与创建二叉树不同,可以边输入边插入。void insert(node *&root, int x){ if(root == NULL){//到达空结点时,即为需要插入的位置 ...

2020-03-07 15:30:29 150

原创 PAT A1053 Path of Equal Weight(***树的遍历)

问题链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805424153280512题意:给定一棵树和每个结点的权值,求所有从根节点到叶子结点的路径,使得每条路径上的结点的权值之和等于给定的常数S。如果由多条这样的路径,则按路径非递归的顺序输出。其中路径的大小是指,如果有多条这样的路径,则按路径非递增的顺序输出。其...

2020-03-07 13:49:55 207

原创 PAT A1102 Invert a Binary Tree (***静态二叉树+二叉树反转)

问题链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805365537882112Note: 将输入的字符型左右结点转换成数字,同时标记该结点是不是根节点。 等所有结点的左右结点输入完后,遍历0~n-1所有结点,notRoot[i] = false时i 是根节点int strToNu...

2020-03-06 22:54:15 141

原创 PAT A1086 Tree Traversals Again (二叉树先序、中序--后序输出)

问题链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805380754817024题目翻译:一个中序二叉树遍历可以通过堆栈以非递归方式实现。例如,假设遍历6节点二叉树(键的编号从1到6)时,堆栈操作为:push(1);push(2);push(3);pop();pop();push(4);pop();pop(...

2020-03-06 19:12:04 162

原创 PAT A1047 Student List for Course (***vector)

Note:1 使用string,最后一组数据会使用string,最后一组数据会超时。像这种数据范围很大的情况,要使用char数组来存放数据。2 如果排序时直接对字符串排序,会导致大量的字符移动,耗时间。因此用字符串的下标来代替字符串本身进行排序,这样耗时会少很多。3 strcmp返回值不一定是-1,0,+1,也可能是其他正数和负数。4 cin cout 也会超时,可改...

2020-03-06 16:36:47 138

原创 PAT A1039 Course List for Student (***vector)

问题链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805447855292416#include<cstdio>#include<cstring>#include<iostream>#include<vector>#include<algorit...

2020-03-06 14:48:30 137

原创 PAT A1020 Tree Traversals (二叉树中序、后序---层序输出)

问题链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805485033603072Note:1 新建结点的格式不能错,不能用=NULL;node *root = new node; //新建一个新的结点,用来存放当前二叉树的根节点2 队列中存的是结点地址,所以是<node*>而不...

2020-03-05 22:44:06 155

原创 算法笔记--BFS例题

例1:基本思想:枚举每一个位置的元素,如果为0,则跳过;如果为1,则使用BFS查询与该位置相邻的4个位置,判断它们是否为1(如果某个相邻的位置为1,则同样去查询与该位置相邻的4个位置,指导整个“1”块访问完毕)。为了防止走回头路,一般可以设置一个bool型数组inq(即in queue的简写)来记录每个位置是否在BFS中已入过队。#include<cstdio>#inc...

2020-03-05 20:09:32 549

原创 算法笔记--DFS例题

有n件物品,每件物品的重量为w[i],价值为c[i]。现在需要选出若干件物品放入一个容量为V的背包中,使得在选入背包的物品重量和不超过容量V的前提下,让背包中物品的价值之和最大,求最大价值。输入数据:5 83 5 1 2 24 5 2 1 3输出结果:10#include<cstdio>#include<iostream> ...

2020-03-04 23:26:35 510

原创 PAT B1056 Mice and Rice (***队列)

问题链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805419468242944#include<cstdio>#include<iostream>#include<queue>using namespace std;struct mouse{ int weigh...

2020-03-04 21:19:13 135

原创 PAT A1051 Pop Sequence (***栈的应用)

问题链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805427332562944先输入M , N , K分别是栈的最大容量M;入栈顺序1~N;判断K组出栈序列是否合法;然后输入K组出栈序列用于测试;#include<cstdio>#include<iostream>#...

2020-03-04 18:33:39 206

原创 PAT A1060 Are They Equal (***string的应用)

问题链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805413520719872

2020-03-04 16:33:58 139

原创 PAT B1019 数字黑洞 (20分)

给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫 Kaprekar 常数。例如,我们从6767开始,将得到7766 - 6677 = 10899810 - 0189 = 96219621 - 12...

2020-03-03 23:32:41 182

原创 PAT B1017 A除以B(***高精度除法)

Note:大整数的存储,用数组,数组每一位代表存放的整数的每一位。235813存储到数组中,则有d[0] = 3,d[1] = 1,d[2] = 8,d[3] = 5, d[4] = 3, d[5] = 2整数的高位存储在数组的高位,整数的低位存储在数组的低位。因为运算时是从整数低位到高位枚举。问题描述:本题要求计算A/B,其中A是不超过 1000 位的正整数,B是 1...

2020-03-03 22:35:11 227

原创 PAT B1015 德才论(***排序cmp主次)

Note:排序函数,排序规则的制定,分清排序主次先后!bool cmp(student a, student b){ if(a.flag != b.flag) return a.flag < b.flag;//类别从小到大排序 else if(a.sum != b.sum) return a.sum > b.sum;//类别相同时,按总分从大到小排序...

2020-03-03 02:55:40 164

原创 PAT B1014 福尔摩斯的约会 (***)

PAT B1014福尔摩斯的约会(20分)问题描述:大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母D,代表...

2020-03-03 01:55:10 175

原创 PAT B1052 卖个萌 (***)

Note:scanf可以用正则表达式来匹配,比如我们需要某个读取一行字符串, 空格也读取, 回车表示结束.直接scanf("%[^\n]", str) 即可。%[]是scanf函数不常用到的格式字符——扫描集参考:https://www.cnblogs.com/asheng2016/p/7873687.html本文代码出处https://www.jianshu.com/p/9e...

2020-03-02 23:22:41 160

原创 PAT B1051复数乘法

Note:==1. 复数乘法的理解2. 加绝对值问题3. 由于实部、虚部都保留两位小数,所以当值介于0与-0.01之间时就必须要把它们设置为零,否则会有用例无法通过 ==问题描述复数可以写成 (A+Bi) 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 i​2​​=−1;也可以写成极坐标下的指数形式 (R×e​(Pi)​​),其中 R 是复数模,P 是辐角,i 是虚数单位...

2020-03-02 21:54:59 188

原创 PAT B1013 数素数 (20分)

PAT B1013数素数(20分)问题描述:令P​i​​表示第i个素数。现任给两个正整数M≤N≤10​4​​,请输出P​M​​到P​N​​的所有素数。输入格式:输入在一行中给出M和N,其间以空格分隔。输出格式:输出从P​M​​到P​N​​的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。输入样例:5 ...

2020-03-02 18:57:03 224

原创 PAT B1010 一元多项式求导 (25分)

PAT B1010 一元多项式求导 (25分)Note:1. 一开始没看明白题目最后一句话““零多项式”的指数和系数都是 0,但是表示为 0 0”意思是如果导数多项式没有非零项则输出“0 0”2. 方法一可以通过,但方法二不用数组存储直接输出更加简便,仔细体会。问题描述:设计函数求一元多项式的导数。(注:x​n(n为整数)的一阶导数为nx​n−1 。)输入格式:以指数递降方式输入...

2020-03-02 18:13:49 120

原创 PAT B1007 素数对猜想 (*素数o(sqrt(n))写法)

PAT B1007素数对猜想(20分)Note:素数(质数):一个大于1的自然数,除了1和它本身外没有其他的约数。素数的判断o(n)写法复杂度太大,要理解o(sqrt(n))写法。下列代码需加头文件<cmath>bool isPrime(int n){ if(n <= 2) return false; int sqr = (int)sqrt(1.0 * ...

2020-03-02 11:47:58 242

原创 PAT B1006 换个格式输出整数 (15分)

PAT B1006 换个格式输出整数 (15分)问题描述:让我们用字母B来表示“百”、字母S表示“十”,用12...n来表示不为零的个位数字n(<10),换个格式来输出任一个不超过 3 位的正整数。例如234应该被输出为BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。输入格式:每个测试输入包含 1 个测试用例,给出正整数n...

2020-03-02 11:08:14 275

原创 PAT B1005 继续(3n+1)猜想 (25分)

PAT B1005 继续(3n+1)猜想 (25分)Note:一直卡的点在:体会本题中的思想,如何让后来输入的数在计算路径上遇到前面输入的数时,前面输入的数不输出。mark[]数组的使用很妙。本题参考https://www.jianshu.com/p/844610cddab3解决此题的关键是散列思想,输入格式给出的n的范围已经暗示了这一思想。用一个标记数组mark(初始化...

2020-03-01 18:48:15 185

原创 PAT B1004 成绩排名

PAT B1004 成绩排名 (20分)Note:结构体student构造; 排序函数的使用。头文件<algorithm> sort(stu, stu+n,cmp);问题描述:读入n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含 1 个测试用例,格式为第 1 行:正整数 n第 2 行...

2020-03-01 14:49:37 170

原创 PAT B1003 我要通过! (***)

1003我要通过!(20分)Note:1 首先我们输入的string只能含有P,A,T三个字母,如果含有其他字母立即输出错误2 在b的后面每加一个A字母,那么在c的后面就要加一个a,判断是不是正确的条件,那就是最左端的A的个数乘以中间的A的个数最终等于右边的A的个数。问题描述:“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大...

2020-03-01 14:27:13 573

原创 PAT B1002 写出这个数 (20分)

PAT B1002 写出这个数 (20分)Note:注意题目中的整型字符型转换DEV如何该C++11使得to_string等可用:在工具-编译选项-编译器-编译时加入这个命令“-std=c++11”:来自柳神https://blog.csdn.net/liuchuo/article/details/82669248问题描述:读入一个正整数n,计算其各位数字之和,用汉语拼音...

2020-03-01 03:11:44 194

原创 随机选择算法

求浮点型的四舍五入,用round()函数,包含头文件<cmath>中。RAND_MAX是C中stdlib.h中宏定义的一个字符常量:#define RAND_MAX Ox7FFF其值最小为32767,最大为2147483647通常在产生随机小数时可以使用RAND_MAX。rand()*1.0/RAND_MAX这个数就是产生了一个0-1的浮点数数据。...

2020-02-29 19:27:00 303

原创 PAT B1045 快速排序

PAT B1045 快速排序著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的N个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?例如给定 $N = 5$, 排列是1、3、2、4、5。则:1 的左边没有元素,右边的元素都比它大,所以它可能是主元; 尽管...

2020-02-28 20:22:28 207

原创 PAT B1040 有几个PAT(***error: ‘gets’ was not declared in this scope)

PAT B1040 有几个PATNote:gets()方法确实已经不被PAT编译器支持,改为cin >> str;头文件+<iostream>字符串APPAPT中包含了两个单词PAT,其中第一个PAT是第 2 位(P),第 4 位(A),第 6 位(T);第二个PAT是第 3 位(P),第 4 位(A),第 6 位(T)。现给定字符串,问一共可以形...

2020-02-28 00:04:26 512

原创 木棒切割问题(***二分法)

木棒切割问题 给出N根木棒,长度均已知,现在希望通过切割它们来得到至少K段长度相等的木棒(长度必须是整数),问这些长度的木棒最长能有多长。 例如对三根长度分别为10,24,15 的木棒来说,假设 K = 7,即需要至少7段长度相等的木棒,那么可以得到的最大长度为6,在这种情况下,第一根木棒可以提供10/6 = 1段、第二根木棒可以提供24/6 = 4段、第三根木棒可以提供15/...

2020-02-26 22:27:28 2781

原创 装水问题(二分法)

装水问题Note:输入时:float型输入用%fdouble型输入用%lf输出时:最好是都用%f输出const double eps = 1e-5; //精度为10^-5 有一个侧面看去是半圆的储水装置,该半圆的半径为R,要求往里面装入高度为h的水,使其在侧面看去的面积与半圆面积的恰好为r,先给定R和r,求高度h。 ...

2020-02-26 20:21:04 700

原创 区间贪心(区间不相交问题***)

区间不相交问题: 给出N个开区间(x, y),从中选择尽可能多的开区间,使得这些开区间两两没有交集。例如对开区间(1,3)、(2,4)、(3,5)、(6,7)来说,可以选出最多三个区间(1,3)、(3,5)、(6,7)它们互相没有交集。 首先考虑最简单的情况,如果开区间 I1被开区间 I2包含,如图a,那么显然选择 I1是最好的选择,因为如果选择I1,那么就有更大的空间去容纳其...

2020-02-25 22:40:41 567

原创 PAT B1023 组个最小数

PAT B1023 组个最小数问题描述:给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。现给定数字,请编写程序输出能够组成的最小的数。输入格式:输入在一行中给出 10 个非负整数,顺序表示我们拥有数字 0、...

2020-02-25 21:12:07 131

原创 PAT B1020 月饼(贪心***结构体、排序函数sort()应用)

PAT B1020 月饼Note:结构体、排序函数sort()的应用、贪心:贪心法是求解一类最优化问题的方法,它总考虑在当前状态下局部最优的策略,来使全局的结果达到最优。问题描述:月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样...

2020-02-25 20:39:12 285

原创 习题3-4 砝码称重(POJ 4141)(动态规划***)

习题3-4 砝码称重(POJ 4141 洛谷2347)Note:用的动态规划解决,两个网站上问题描述一摸一样,提交代码在POJ4141上无法通过,在洛谷上可以通过,,,,不知道什么原因参考原博文https://blog.csdn.net/dreamandxiaochouyu/article/details/52450688在此基础上修改为本题问题描述:设有1g、2g...

2020-02-25 01:08:01 2308

原创 习题3-3 不定方程求解(POJ 4139)

习题3-3 不定方程求解(POJ 4139)问题描述:给定正整数a,b,c。求不定方程 ax+by=c 关于未知数x和y的所有非负整数解组数。输入一行,包含三个正整数a,b,c,两个整数之间用单个空格隔开。每个数均不大于1000。输出一个整数,即不定方程的非负整数解组数。样例输入2 3 18样例输出4#include<cstdio>#...

2020-02-24 17:23:42 1252

原创 习题3-2:质数的和与积(POJ 4138)(判断质数*)

习题3-2:质数的和与积(POJ 4138)Note: 0 1不是质数。注意判断是否是质数的函数写法。问题描述:两个质数的和是S,它们的积最大是多少?输入一个不大于10000的正整数S,为两个质数的和。输出一个整数,为两个质数的最大乘积。数据保证有解。样例输入50样例输出589#include<cstdio>#includ...

2020-02-24 17:14:26 1430

原创 习题3-1:数字三元组(POJ 4146)

习题3-1:数字三元组(POJ 4146)问题描述:如上图,有3个方格,每个方格里面都有一个整数a1,a2,a3。已知0 <= a1, a2, a3 <= n,而且a1 + a2是2的倍数,a2 + a3是3的倍数, a1 + a2 + a3是5的倍数。你的任务是找到一组a1,a2,a3,使得a1 + a2 + a3最大。输入一行,包含一个整数n (0 <= n...

2020-02-24 16:02:13 2826

原创 熄灯问题(POJ 2811)

问题描述:Note:1. int a[5][6] 输入循环如下,是不可以的,会一直无法结束输入,数组下标应是0~4,0~5 。for(i = 1; i <= 5; i++) for(j = 1; j <= 6; j++) cin >> a[i][j];2 . 有一个由按钮组成的矩阵,其中每行有...

2020-02-23 22:54:05 779

空空如也

空空如也

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

TA关注的人

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