![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
知识点汇编
文章平均质量分 79
一些算法题目
kuai-
这个作者很懒,什么都没留下…
展开
-
100以后
字符串A1108 Finding Average题目:The basic task is simple: given N real numbers, you are supposed to calculate their average. But whatmakes it complicated is that some of the input numbers might not be legal. A “legal” input is a realnumber in [-1000, 1000原创 2021-06-24 15:32:25 · 97 阅读 · 0 评论 -
PTA树专题
1 树与二叉树1.1树的概念没有结点的数成为空树树只有根节点时,根也是叶子1.1.1树的技巧1.完全二叉树的性质:判断叶子? id * 2 > n判断空节点? id > n2.判断根节点:不是任何节点的孩子,在输入时加数组统计即可。3.输出时,最后一个节点后没有空格:在遍历时添加一个计数器,当小于节点数时输出空格。1.1.2 树的结构一、动态二叉树struct node{ int data; node* lchild; node* rchild;原创 2021-05-18 15:16:09 · 368 阅读 · 0 评论 -
基础知识专题
一、哈希核心思想::将 10510^5105 以内的数字,存储在 hash 表中,这样可以实现随机访问。尤其是给出ID值的题目,直接用ID作为数组下标。例题:A1116 Come on! Let’s C - 素数判断题目大意:给出一组选手的ID,以及对应的名次,冠军获得神秘礼物,奇数排名获得小黄人,其他获得巧克力。输入ID,输出奖励结果。思路:用 ID 作为索引,建 hash 表判断素数:普通遍历法代码:#include<cstdio>#include<algori原创 2021-06-24 15:31:16 · 482 阅读 · 0 评论 -
图专题
1.图的相关定义注意,图中重要的两个权值!做题时搞清楚,是对 “点权” 的处理还是对 “边权” 的处理。1.1 点权1.2 边权2.图的存储2.1邻接矩阵节点数量在 100010001000 以下存储边权:int G[MAXN][MAXN]存储点权:int weight[MAXN]2.2邻接表存储边权:struct node{ int v; // 终点 int w; // 边权}vector<node> Adj[MAXN]; // 邻接表存储点权原创 2021-04-28 15:28:19 · 649 阅读 · 0 评论 -
7-30目录树 C++题解 思路清晰
目录数据结构的设计算法设计1.建树2.输出3.合并总结题目链接在ZIP归档文件中,保留着所有压缩文件和目录的相对路径和名称。当使用WinZIP等GUI软件打开ZIP归档文件时,可以从这些信息中重建目录的树状结构。请编写程序实现目录的树状结构的重建工作。输入格式:输入首先给出正整数N(≤104 ),表示ZIP归档文件中的文件和目录的数量。随后N行,每行有如下格式的文件或目录的相对路径和名称(每行不超过260个字符):路径和名称中的字符仅包括英文字母(区分大小写);符号“\”仅作为路径分隔符出现;原创 2021-09-03 14:38:01 · 1254 阅读 · 2 评论 -
最长上升子序列O(nlogn)算法核心思想简述
【题目描述】给定N个数,求这N个数的最长上升子序列的长度。【样例输入】72 5 3 4 1 7 6【样例输出】4下面记录本人对 “贪心 + 二分” 【O(nlogn)】 算法的一些理解。0 本文思路:1)介绍解题过程2)分析解法可行性不想听废话,请直接移步 第四部分 :“4 操作的意义”,演示该操作的效果与意义。1 核心思想:(贪心)对于一个上升子序列,显然其结尾元素越小,越有利于在后面接其他的元素,也就越可能变得更长。2 操作过程:现创建一个新数组 b[ ], 用来存放:考虑原创 2020-10-16 18:22:07 · 2539 阅读 · 0 评论 -
PAT A1018 Dijkstra+DFS+第三标尺
题意:城市里有一些公共自行车站,每个车站的最大容量为一个偶数CmaxCmaxCmax,如果该车站的自行车数量为Cmax2\frac{Cmax}{2}2Cmax,那么就称该车站处于完美状态。如果一个车站的容量是满的或者空的,控制中心就要携带或者从路上搜集一定数量的自行车前往该车站,以使问题车站及沿途所有车站处于完美状态。现给出CmaxCmaxCmax、车站数目nnn、问题车展编号SpS_pSp、无向边数MMM以及边权,求一条从控制中心到SpS_pSp的最短路径,输出需要携带的自行车数目、路径、需要携带原创 2021-04-26 20:23:55 · 79 阅读 · 0 评论 -
PAT A1146 拓扑排序
题目:给出图,和几个序列,找出不是拓扑序列的序列。输入:N,K表示点的个数和边的个数。K行,代表边。跟着S,输入S个序列。输出:不是拓扑序列的编号。回顾拓扑排序的过程:0.将初始入度为 0 的点加入队列,1.出队一个元素,删除他的边,若该边指向的点入度为 0,则将其加入;2.重复上述步骤直至队列为空,最后判断入过队的个数。其中,可能有多个入度为 0 的点,其入队的先后顺序不同,可获得不同的拓扑序列。而现在题目给出了一个具体的序列,需要我们判断是否是拓扑序列。那么问题转化为:按照给定的序原创 2021-04-28 15:30:32 · 149 阅读 · 0 评论 -
PAT A1119-根据前序后序序列建树
题目大意:给出树的节点数,以及前序、后序遍历序列。若树唯一,输出“Yes”,以及中序遍历序列;否则输出“No”,以及任意一个中序遍历序列。分析:首先回顾 前、中序建树的过程:前序根节点确定,中序不确定,根据前序确定根节点,在中序中找到根,切分左右子树,递归。在看 前、后序建树,前序、后序根节点都确定了,且一个在最前,一个在最后,无法切分左右子树。但必须得想办法,切分。为什么前序和后序序列无法确定唯一的二叉树?前序根节点 preL 的后一个 preL+1,一定是根的孩子(不知左右);后序根节点原创 2021-06-17 20:06:20 · 224 阅读 · 0 评论 -
模板题型总结
一、根据前序、中序序列建立二叉树1.根据前序、后序建立二叉树思想:根据前序序列,在中序中找到 根节点 的位置,创建根节点,然后划分左右区间,向下递归,用 “递归区间” 作为终点判断条件。核心:每一次递归只建立了一个根节点。代码:node* createTree(int Pre[],int In[],int preL,int preR,int inL,int inR){ // 递归终点 if(preL > preR) return NULL; // 找到根节点的位置 int k原创 2021-07-05 20:57:52 · 157 阅读 · 0 评论