pta L2题目
Sophon、
软工小白、ICPC混子选手
展开
-
【PTA】【L2-012】关于堆的判断 (25 分)
用数组模拟建堆,为了达到判断结点关系的目的需要用map进行映射。输入样例:5 446 23 26 24 1024 is the root26 and 23 are siblings46 is the parent of 2323 is a child of 10输出样例:FTFT#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e3 + 5;int .原创 2021-12-26 12:58:43 · 686 阅读 · 0 评论 -
【PTA】【L2-011】玩转二叉树 (25 分)
输入样例:71 2 3 4 5 6 74 1 3 2 6 5 7输出样例:4 6 1 7 5 3 2题意:给定一颗二叉树的中序遍历和前序遍历,要求输出此树镜像的层序遍历。思路:已知一颗二叉树的先序+中序或后序+中序即可递归建成唯一的一颗树,在建树的同时将原左子树建为右子树,以及右子树建为左子树即可得到镜像二叉树。建树模板#include<bits/stdc++.h>using namespace std;typedef long long ll;const int .原创 2021-12-26 10:47:33 · 1138 阅读 · 2 评论 -
【PTA】【L2-010】排座位 (25 分)
注意理解题意:朋友的朋友也是朋友。但敌人的敌人并不一定就是朋友,朋友的敌人也不一定是敌人。只有单纯直接的敌对关系才是绝对不能同席的。思路:使用并查集维护朋友关系,因为朋友关系是可以传递的。使用二维矩阵存储敌对关系,敌对关系是不传递的。按题目要求分类输出。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e2 + 5;int fa[N];bool rela[N][N];i.原创 2021-12-26 10:13:36 · 430 阅读 · 0 评论 -
【PTA】【L2-009】抢红包 (25 分)
输入样例:103 2 22 10 58 8 1255 1 345 3 211 5 233 7 13 8 1011 7 88002 1 1000 2 10002 4 250 10 3206 5 11 9 22 8 33 7 44 10 55 4 21 3 88002 1 23 2 1231 8 2504 2 121 4 516 7 112 9 10样例输出:1 11.632 3.638 3.633 2.117 1.696 -1.679 -2.1810 -3.265.原创 2021-12-25 23:41:39 · 362 阅读 · 0 评论 -
【PTA】【L2-008】最长对称子串 (25 分)
求串中最长对称字串。字串可能是奇数长度的例如s PAT&TAP s,当然也有可能是偶数长度的例如s PATTAP s,这两种情况分开统计即可。#include<bits/stdc++.h>using namespace std;int main(){ string s; getline(cin,s); int ls = s.length(); int l,r,ans = 0; //偶数对称串 for(int i=0;s[i];i++){ l = i;r=i+.原创 2021-12-25 20:11:58 · 302 阅读 · 0 评论 -
【PTA】【L2-007】家庭房产 (25 分)
输入样例:106666 5551 5552 1 7777 1 1001234 5678 9012 1 0002 2 3008888 -1 -1 0 1 10002468 0001 0004 1 2222 1 5007777 6666 -1 0 2 3003721 -1 -1 1 2333 2 1509012 -1 -1 3 1236 1235 1234 1 1001235 5678 9012 0 1 502222 1236 2468 2 6661 6662 1 3002333 -1 .原创 2021-12-25 19:52:34 · 992 阅读 · 0 评论 -
【PTA】【L2-006】树的遍历 (25 分)
思路:正常建树并层序遍历即可。(前面有发过建树模板)#include<iostream>#include<algorithm>#include<queue>using namespace std;const int N = 35;int n, post[N], mid[N];typedef struct tree { int data; tree* lchild, * rchild;}TNode, *Tree;// 参数依次此为中序起点...原创 2021-10-05 22:34:43 · 197 阅读 · 0 评论 -
【PTA】【L2-005】集合相似度(25分)
题意:求给定两个集合的差集大小/并集大小。思路:使用set内置函数。#include<iostream>#include<algorithm>#include<vector>#include<cstdlib>#include<set>#include<iomanip>using namespace std;int main(){ ios::sync_with_stdio(false); ve...原创 2021-10-05 22:00:33 · 174 阅读 · 0 评论 -
【PTA】【L2-004】这是二叉搜索树吗?(25分)
思路:建两颗树,另一颗为镜像。一边先序一边验证。注意:原树的先序不对后,要接着验证镜像,均不满足后才能输出"NO"。#include<iostream>#include<algorithm>#include<vector>#include<cstdlib>using namespace std;const int N = 1005;int n, pre[N], post[N], cnt, flag;typedef struct ...原创 2021-10-05 21:30:25 · 910 阅读 · 0 评论 -
【PTA】【L2-003】月饼(25分)
算法:贪心。注意:优先抛售性价比搞的月饼(性价比 = 月饼总售价 / 月饼总库存)。#include<iostream>#include<algorithm>#include<cstdio>using namespace std;struct Node { double n; double v;}a[1005];bool mycmp(Node& b1, Node& b2){ return b1.v * b2.n.原创 2021-09-28 00:05:45 · 1215 阅读 · 0 评论 -
【PTA】【L2-002】链表去重(25分)
思路:建立两个数组存储重复和不重复的结点的地址。注意:输出-1时不用补充前导0.#include<iostream>#include<cmath>#include<iomanip>using namespace std;const int N = 1e5 + 5;int n, h, o[N], r[N], oind, rind;bool a[N];struct node { int key, nxt;}l[N];int main.原创 2021-09-27 23:58:14 · 327 阅读 · 0 评论 -
【PTA】【L2-001】紧急救援(25分)
L2-001 紧急救援算法:Dijkstra(最短路) DFS思路:先求出最短路的长度,再依据长度进行搜索。注意:剪枝以及记录最多的救援队数。#include<iostream>#include<string>#include<vector>#include<queue>using namespace std;const int N = 505;//数据范围int n, m, s, d, len;int a[N], di..原创 2021-09-27 23:43:09 · 788 阅读 · 0 评论