树
文章平均质量分 51
moleet
好想摸
展开
-
PTA 7-31 笛卡尔树 (25 point(s))
#include <bits/stdc++.h>using namespace std;struct Tree{ int k1, k2, l, r;};int n, k1, k2, l, r, root = -1;bool father[1000]{false};vector<int> v1, v2;vector<Tree> tree;void dfs(int u){ // 递归边界 结点不存在则退出 if(u == ...原创 2021-08-16 21:28:40 · 166 阅读 · 0 评论 -
PTA 7-27 家谱处理 (30 point(s))
#include<bits/stdc++.h>using namespace std;string pre[100]; // 缓存相对关系map<string, string> parent; // 存储对象父亲bool isAncestor(string x, string y){ // x不是y的祖先 && y未到祖先(root祖先父节点) while(x != parent[y] &&...原创 2021-08-16 21:27:27 · 528 阅读 · 0 评论 -
PTA 7-28 搜索树判断 (25 point(s))
对于二叉搜索树,我们规定任一结点的左子树仅包含严格小于该结点的键值,而其右子树包含大于或等于该结点的键值。如果我们交换每个节点的左子树和右子树,得到的树叫做镜像二叉搜索树。现在我们给出一个整数键值序列,请编写程序判断该序列是否为某棵二叉搜索树或某镜像二叉搜索树的前序遍历序列,如果是,则输出对应二叉树的后序遍历序列。输入格式:输入的第一行包含一个正整数N(≤1000),第二行包含N个整数,为给出的整数键值序列,数字间以空格分隔。输出格式:输出的第一行首先给出判断结果,如果输入的序列是某棵二原创 2021-08-14 19:47:11 · 427 阅读 · 0 评论 -
PTA 7-29 修理牧场 (25 point(s))
农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是Li的总和。但是农夫自己没有锯子,请人锯木的酬金跟这段木头的长度成正比。为简单起见,不妨就设酬金等于所锯木头的长度。例如,要将长度为20的木头锯成长度为8、7和5的三段,第一次锯木头花费20,将木头锯成12和8;第二次锯木头花费12,将长度为12的木头锯成7和5,总花费为32。如果第一次将木头锯成15和5,则第二次锯木头花费15,总花费为35(大于32原创 2021-08-14 19:44:29 · 619 阅读 · 0 评论 -
PTA 7-30 目录树 (30 point(s))
在ZIP归档文件中,保留着所有压缩文件和目录的相对路径和名称。当使用WinZIP等GUI软件打开ZIP归档文件时,可以从这些信息中重建目录的树状结构。请编写程序实现目录的树状结构的重建工作。输入格式:输入首先给出正整数N(≤104),表示ZIP归档文件中的文件和目录的数量。随后N行,每行有如下格式的文件或目录的相对路径和名称(每行不超过260个字符):路径和名称中的字符仅包括英文字母(区分大小写); 符号“\”仅作为路径分隔符出现; 目录以符号“\”结束; 不存在重复的输入项目; 整个输原创 2021-08-14 19:41:54 · 230 阅读 · 0 评论