![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pat
patA-B题解
前尘忆梦丿
这个作者很懒,什么都没留下…
展开
-
1129 Recommendation System
题目链接:1129 Recommendation System (25分)题意推荐系统,给出N个物品编号,从1到N,和K个推荐窗口大小,只能推荐K个物品,按照物品出现次数从大到小排序,相同的按照物品编号从小到大排序。分析将物品编号和次数设置为一个结构体。设置一个物品结构体数组,下标为物品编号下标,当输入该物品将次数增加一次。设置一个set集合装入结构体,结构体内部排序按照题目要求。第一个询...原创 2020-02-23 15:34:25 · 102 阅读 · 0 评论 -
1128 N Queens Puzzle (20分)
题目链接:1128 N Queens Puzzle (20分)题意N皇后问题,简化问题,使每个皇后在不同的列,给出每列皇后所在的行号。判断是否符合N皇后规则。所有皇后在n*n棋盘中,任意两个皇后在不同行,不同列,不同对角线。分析依次对每一列的皇后判断是否与前面的皇后处于对角线上,在同一对角线上,停止检索,输出NO。所有都不在,检查是否每个行号都出现了。都出现了表示所有的皇后都不在同一行上。...原创 2020-02-22 14:33:58 · 126 阅读 · 0 评论 -
1127 ZigZagging on a Tree (30分)
题目链接:1127 ZigZagging on a Tree (30分)题意给定二叉树的中序和后序,将二叉树按Z型打印。奇数层从右到左,偶数层从左到右打印。分析先根据中序和后序建立一颗二叉树,设置一个vector,stack,使用队列层序遍历,得到每个结点的层次,将奇数层的结点加入栈中,当出队结点为偶数层的第一个时,将栈中的结点依次出队到vector中,偶数层直接加入vector。最后在输...原创 2020-02-22 13:52:10 · 150 阅读 · 0 评论 -
1126 Eulerian Path (25分)
题目链接:1126 Eulerian Path (25分)题意:It has been proven that connected graphs with all vertices of even degree have an Eulerian circuit, and such graphs are called Eulerian.所有顶点有偶数度的联通无向图为欧拉回路。恰有两个顶点的度为...原创 2020-02-22 11:49:38 · 85 阅读 · 0 评论 -
1125 Chain the Ropes (25分)
题目链接:1125 Chain the Ropes (25分)题意:给出一些绳子的长度,将这些绳子两两结合起来,每次结合绳子长度为原来两个长度的一半,依题意结果向下取整。最终结合为一个绳子,求这个绳子的最大长度。分析哈夫曼编码。因为每次结合,都会使绳子长度减半,次数越多减得越多,因此让长的放在最后结合,减半的次数少,每次挑选最短的两个结合为一个新的长度,在从数组中挑选剩下的。可以用优先队...原创 2020-02-22 11:29:23 · 92 阅读 · 0 评论 -
1124 Raffle for Weibo Followers (20分)
题目链接:1124 Raffle for Weibo Followers (20分)题意约瑟夫环变体,给出M个人的姓名(可能重复),从第S个人开始每隔N个为得奖人,若重复,则得奖人为下一个。分析简单模拟。从第S开始递增,到第N个人判断是否重复,重复cnt–;否则输出,加入集合。代码#include <iostream>#include <cstdio>#in...原创 2020-02-16 21:54:39 · 67 阅读 · 0 评论 -
1123 Is It a Complete AVL Tree (30分)
题目链接:1123 Is It a Complete AVL Tree (30分)题意根据给出的序列建一颗平衡二叉树,并判断是否为完全二叉树分析构建平衡二叉树基于左单旋和右单旋。平衡因子的的绝对值超过1.左子树减去右子树的绝对值。平衡因子为2若左子树的平衡因子为1则进行右单旋。若左子树的平衡因子为-1则先对左子树进行左单旋,在对本树进行右单旋。平衡因子为-2若右子树的平衡因子为...原创 2020-02-16 20:09:44 · 104 阅读 · 0 评论 -
1122 Hamiltonian Cycle (25分)
题目链接:1122 Hamiltonian Cycle (25分)题意:给出路径,判断是否为Hamiltonian cycle ,就是一个联通圆环,N个顶点N条边。分析路径顶点个数只能为N+1,并且要判断是否联通,满足这个条件的就输出YES。联通可以输入时判断是否有两个顶点的边,然后在判断是否N个顶点都出现过。#include <iostream>#include <...原创 2020-02-16 19:32:20 · 131 阅读 · 0 评论 -
1121 Damn Single (25分)
题目链接1121 Damn Single (25分)题意给出N个夫妻对的ID,然后又给出一组ID,求这组ID中没有接成对的ID。分析给出的一组ID,即使不是单身,也可能另一半没有参加party,也算做单身。对于夫妻对ID,a,b 可以设为数组,A[a] = b, A[b] = a;将给出的一组ID放入set中,然后遍历查找是否另一半也在集合中,不在的话加入结果集合代码#include ...原创 2020-02-16 19:24:14 · 103 阅读 · 0 评论 -
1120 Friend Numbers (20分)
题目链接:1120 Friend Numbers (20分)题意:给定一个数组,输出所有友好数字。友好数字就是每个数的各个位相加。分析计算每个数的各个位之和放入set中输出。set使用set默认是从小到大排序,遍历Set 使用迭代器set::iterator it = st.begin(); 迭代器是指针类型的,遍历set的值使用 *it 就可获得其中的值。代码#include &...原创 2020-02-16 18:30:47 · 85 阅读 · 0 评论 -
1127 ZigZagging on a Tree (30分)
题目链接:1127 ZigZagging on a Tree (30分)题意根据中序和后序根据层序按z字型输出。分析构建颗二叉树,中序左根右,后序左右根,一棵树的后序序列的最后一个为这个树的根结点,然后在中序序列找到根节点元素的位置,该位置左边为左子树,右边为右子树。得到子树的对应长度,划分中序和后序的左右子树序列的下标,然后递归处理。构建完成树,队列层序处理,根据题意奇数层从右到左,偶...原创 2020-02-16 17:01:50 · 90 阅读 · 0 评论 -
1117 Eddington Number (25分)
题目链接:1117 Eddington Number (25分)题意给出N天的骑行路程,求满足E天骑行超过E公里,最大的E。分析将路程按照从大到小排序,10 9 8 8 7 7 6 6 3 2从1开始当第i天路程a[i] - 1 >= i时,满足E天超过E公里,将i一直增加知道不满足条件时停止,即a[i] - 1 < i。则最大天数为 E = i - 1;代码#inclu...原创 2020-02-12 20:31:14 · 143 阅读 · 0 评论 -
1118 Birds in Forest (25分)
题目链接:1118 Birds in Forest (25分)题意给出N个照片上的鸟,同一照片上的鸟在同一颗树上。鸟的编号从1递增。判断有多少颗树,和鸟的数量。判断两只鸟是否在同一颗树上。分析考察并查集。编号递增,所以设置个maxVal输入时计算最大编号就可以了,然后在设置个并查集数组,根元素的值等于根元素。输入时将同一个照片上的鸟的编号合并。集合的数量就为树的数量。代码#includ...原创 2020-02-12 20:00:57 · 155 阅读 · 0 评论 -
1116 Come on! Let's C (20分)
题目链接:1116 Come on! Let’s C (20分)题意prime Number 素数,给定N个人的Id按照排名依次给出,给出k次查询,求该id获得什么奖励。第一输出 Mystery Award ,素数名次输出Minion,其他输出Chocolate,第二次被询问则输出Checked,没有该ID则输出Are you kidding?分析数据范围为10000,所以可以使用桶,设...原创 2020-02-12 19:54:48 · 108 阅读 · 0 评论 -
1115 Counting Nodes in a BST (30分)
题目链接:1115 Counting Nodes in a BST (30分)题意给出二叉排序树的输入序列,其中小于等于根节点的放左边,大于根节点的放右边。构建完二叉排序树够计算最下面一层的元素个数n1 ,和倒数第二层的元素个数n2,计算n1 + n2分析根据序列构造二叉树,然后层序遍历,计算n1,n2.代码#include <iostream>#include <...原创 2020-02-12 19:44:15 · 80 阅读 · 0 评论 -
1114 Family Property (25分)
题目链接:1114 Family Property (25分)题意给出N个人的 自己的id, 父亲的id,母亲的id,孩子个数,孩子id,房产数量,拥有房子总面积。求N个人一共有多少个家庭关系,输出每组家庭的 成员最小编号, 家庭人员个数,家庭平均房产数量,家庭平均土地面积,按照家庭平均土地面积递减排序,若相同则按照成员最小id递增排序。分析考察并查集。将每个人的id,父母id,孩子id并...原创 2020-02-12 17:05:55 · 164 阅读 · 0 评论 -
1113 Integer Set Partition (25分)
题目链接:1113 Integer Set Partition (25分)题意将给定数组分为两个数组a1,a2使得两个数组中元素个数差值最小,元素和差值最大。分析数组元素个数差值最小即等分。使得元素和最大,使a1放原数组中按照重小到大排序后的前n/2个(向下取整),剩下的n - n / 2个放在a2中。无论奇偶a1都放n/2个。不需要排序,找到原数组中的中位数。时间复杂度O(n)...原创 2020-02-12 16:47:22 · 135 阅读 · 0 评论 -
1105 Spiral Matrix (25分)
题目链接:1105 Spiral Matrix (25分)题意:给定正整数N,找到满足m*n = N的可能中使得m>=n且m-n最小。在m*n的矩阵中按照数组从大到小以顺时针方向依次填写。思路分析:数组排序将矩阵从外圈到内圈依次赋值,每一圈按照 上右下左的顺序填充,并且最后一个不填。每一圈给定两个坐标,左上角和右下角。(i,j), (a[0],a[1]);每填充一圈i++,j...原创 2020-02-10 20:46:43 · 349 阅读 · 0 评论 -
1110 Complete Binary Tree (25分)
题目链接:1110 Complete Binary Tree题意N个结点,结点值从0 - N-1。给出N个结点的左右子树下标。判断是否为完全二叉树,是则输出YES 和最后一个结点值,不是则输出根节点值。分析可用结构体存储结点值,和左右子树,只有根节点是没有指向的。所以判断没有出现的数字即为根节点。然后是bfs搜索,队列为结点的值,将空节点作为-1加入队列。当出现空节点后,完全二叉树是后面...原创 2020-02-06 11:44:47 · 107 阅读 · 0 评论 -
1108 Finding Average (20分)
题目链接:1108 Finding Average (20分)题意:给出N个字符串,找出[-1000,1000]内的不超过两位小数的数。题解可以使用sscanf(str, “%lf”, t); 将str以double型赋值给t,然后在将sprintf(a, “%.2f”, t); 在将t以两位小数的形式赋值给字符数组a逐一比较str,a各个位上是否相等,不等则不满足题意。代码1#i...原创 2020-02-05 17:41:10 · 85 阅读 · 0 评论 -
1107 Social Clusters (30分)
题目链接:1107 Social Clusters 题意:给出N个人的爱好种类,爱好相同的人为一个群体。成为一个群体的条件与群体中的某个人有一个相同的爱好,输出群体个数,和每个群体的人数。题解:考察并查集。每个人的爱好种类都自成一个集合,若自己的爱好中有属于其他人集合的,则将两个人的爱好合并为一个集合。设这个集合的根结点的值为群体的人数负值。设f[maxn]为爱好的集合,f[i] = a...原创 2020-02-05 13:39:38 · 149 阅读 · 0 评论 -
1104 Sum of Number Segments (20分)
题目链接:1104 Sum of Number Segments题意:求数组的全部连续子序列的和。下标1为首个元素思路1:求每个数在全部子序列中出现的次数。设子序列的首尾指针为f,r.若a[i]在子序列中那么,i必在[f,r]中,f有1, 2… i种可能,共i种,r有 i ,i + 1…n种可能共n-i + 1种可能所以a[i]出现的次数为i*(n - i + 1),因此全部连续子序列的...原创 2020-02-04 14:01:47 · 116 阅读 · 0 评论 -
1103 Integer Factorization (30分)
题目链接1103 Integer Factorization题意求k个数的p次幂之和等于N。答案可能有多种,输出k个数之和最大的那种,若和最大则输出字典序最大的。解题思路一开始自己想的是暴力搜索,从n开始往下减到1,通过剪枝降低时间复杂度,从大数开始搜索,可以保证字典序是最大的,然后在比较各位数之和,但是写出来依然超时。网上搜了一些博客解决了问题。因为a[i]都要大于0,n最大为400,...原创 2020-02-03 13:30:47 · 175 阅读 · 0 评论 -
1100 Mars Numbers (20分)
题目链接1100 Mars Numbers题意:相当于进制转换,给出0-12和13的倍数对应的火星文,即tam对应13,hel对应26,等等依次对应。pat不能用gets();#include <iostream>#include <cstring>#include <cstdio>#include <string>/* run thi...原创 2020-02-02 19:46:22 · 159 阅读 · 0 评论 -
1005 Spell It Right(20分)
题目链接1005 Spell It Right题意给出字符串,计算每位上的数字之和,然后用英语输出和。#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <algorithm>/* run this program ...原创 2020-02-02 17:35:15 · 95 阅读 · 0 评论 -
1006 Sign In and Sign Out (25分)
题目链接1006 Sign In and Sign Out题意:给出人员的ID,来的时间和走的时间,找出最早来的和最晚来的人;直接输入的时候比较字符串,小的早,大的晚,找出最小和最大的字符串。#include <iostream>#include <cstring>#include <cstdio>#include <string>#i...原创 2020-02-02 17:31:23 · 95 阅读 · 0 评论 -
1004 Counting Leaves (30分)
题目链接1004 Counting Leaves题意:给出树的总结点个数,和非叶子结点个数,然后给出非叶子结点的孩子结点,求每层的叶子结点数。使用邻接表储存输入的数据。然后bfs从根结点1遍历,level++.返回最大的层数。坑点:数据结点值不是1-n是随机的,根节点是1。输入的数据不一定是先输入父节点。------第一次没用BFS直接输入数据的时候处理的,没有想到这种情况,搜了几个...原创 2020-02-01 18:18:51 · 131 阅读 · 1 评论 -
1002 A+B for Polynomials (25分)
题目链接1002 A+B for Polynomials题意:求两个多项式相加,类似于链表的合并,用结构体将幂值,和系数存起来。幂值不同,大的存到答案结构体数组中,指针向后移一位,相同将系数相加,并且判断是否为0为0则不存。#include <iostream>#include <cstdio>#include <cstring>#include &l...原创 2020-02-01 14:13:42 · 75 阅读 · 0 评论