PAT
文章平均质量分 70
jigsaw_zyx
人生总是来来往往,可凭心而行,可随心而动,千万别等来日方长
展开
-
LCA几种算法
下来 n−1 行,每行三个整数 x,y,k,表示点 x 和点 y 之间存在一条边长度为 k;接下来n行每行一对整数对a和b表示a和b之间有连边。对于每一个询问,输出1:如果x是y的祖先,输出2:如果y是x的祖先,否则输出0。再接下来 m 行,每行两个整数 x,y,表示询问点 x 到点 y 的最短距离。给出 n 个点的一棵树,多次询问两点之间的最短距离。共 m 行,对于每次询问,输出一行询问结果。节点的编号x和y,询问x与y的祖孙关系。第n+2行是一个整数m表示询问个数。接下来m行,每行两个正整数x和y。..原创 2022-08-05 18:49:16 · 358 阅读 · 2 评论 -
L3-003 社交集群 (30 分)(并查集+数组记录,简单做法)
传送门并查集的应用,一个数组记录爱好第一次出现在哪个下标的人,并查集将有相同爱好的人合并,记录大小#include<bits/stdc++.h>using namespace std;const int N=1086;int n;int fa[N],v[N],siz[N];int find(int x){ if(x==fa[x]) return x; return fa[x]=find(fa[x]);}void merge(int x,int y){ x=find(原创 2022-03-18 15:57:48 · 577 阅读 · 3 评论 -
L3-002 特殊堆栈 (30 分)(神仙写法vector的妙用,排序新办法)
传送门L3-002 特殊堆栈 (30 分)堆栈是一种经典的后进先出的线性结构,相关的操作主要有“入栈”(在堆栈顶插入一个元素)和“出栈”(将栈顶元素返回并从堆栈中删除)。本题要求你实现另一个附加的操作:“取中值”——即返回所有堆栈中元素键值的中值。给定 N 个元素,如果 N 是偶数,则中值定义为第 N/2 小元;若是奇数,则为第 (N+1)/2 小元。输入格式:输入的第一行是正整数 N(≤105)。随后 N 行,每行给出一句指令,为以下 3 种之一:Push keyPopPeekMedia原创 2022-03-18 10:07:55 · 179 阅读 · 1 评论 -
PTALV2习题集(题解与坑点分析)
文章目录L2-013 红色警报 (25 分)(图的连通性)L2-023 图着色问题 (25 分)(图的连通性)L2-025 分而治之 (25 分)(链接表存图)L2-014 列车调度 (25 分)L2-015 互评成绩 (25 分)L2-016 愿天下有情人都是失散多年的兄妹 (25 分)L2-018 多项式A除以B (25 分)L2-019 悄悄关注 (25 分)(map的应用)L2-020 功夫传人 (25 分)(广搜)L2-026 小字辈 (25 分)(广搜)L2-031 深入虎穴 (25 分)(广搜原创 2022-03-13 12:36:00 · 2050 阅读 · 0 评论 -
线段树模板(不会有人还不会吧?比如我)
文章目录基础学习题目大意分析线段树的基本思想**建树****查询区间和****修改一个数**ACC代码应用基础学习首先,讲得非常好的UP猪(链接点着里~)题目大意要求查找一个区间内的和,和修改一个数分析如果是用遍历或者前缀和的思想,无论如何总有一个操作是O(n)的时间复杂度,这时候就需要我们寻找另外的办法降低复杂度遍历:前缀和:线段树:线段树的基本思想建树由于这里存树是用完全二叉树存树,在理想情况下,N个叶节点的满二叉树有N+N/2+N/4+N/8…+2+1=2N+1个节点原创 2022-03-06 17:18:24 · 1506 阅读 · 5 评论 -
L2-013 红色警报 (25 分)(图的连通性:DFS或者利用并查集连通性)
L2-013 红色警报 (25 分)战争中保持各个城市间的连通性非常重要。本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报。注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不改变其他城市之间的连通性,则不要发出警报。输入格式:输入在第一行给出两个整数N(0 < N ≤ 500)和M(≤ 5000),分别为城市个数(于是默认城市从0到N-1编号)和连接两城市的通路条数。随后M行,每行给出一条通路所连接的两个城市的编号,其间以1个空格分隔原创 2022-03-04 21:57:46 · 181 阅读 · 0 评论 -
并查集基础以及拓展应用(理解记忆了还怕并查集?)
最近老是做到并查集的题,趁着机会总结一下用法,今后遇到新题型继续补充博客,不得不说最近一天不敲代码手痒得慌啊!可是自己太菜了根本记不到!可恶!记忆记忆!文章目录基础并查集初始化查找合并边带权并查集例题:查找合并AC代码练习题扩展域并查集例题分析AC代码练习题基础并查集初始化 for(int i=0;i<=n;i++) f[i]=i;查找int get(int x){ if(x==f[x]) rturn x; return f[x]=find(f[x]);//路径压缩 }原创 2022-03-04 21:30:05 · 358 阅读 · 0 评论 -
L2-012 关于堆的判断 (25 分)
写在前面的废话今天把追了两个星期的小说看完了…感觉很是感慨啊,在这里纪念一下:我欲乘风向北行,雪落轩辕大如席。我欲借船向东游,绰约仙子迎风立。我欲踏云千万里,庙堂龙吟奈我何?昆仑之巅沐日光,沧海绝境见青山。长风万里燕归来,不见天涯人不回!记得,我们都是少年。输时不悲,赢时不谦。手中握剑,心中有义。见海辽远,就心生豪迈。见花盛开,不掩心中喜悦。前路有险,却不知所畏。有友在旁,就想醉酒高歌。想笑了就大声笑,想骂了就破口骂,人间道理万卷书,只求随心随行!…没有小说看的今夜开始有些无聊了啊原创 2022-03-03 23:43:21 · 186 阅读 · 0 评论 -
L2-005 集合相似度 (25 分)(set的应用,学到了学到了)
题目描述题解大概题意:统计两个数组里同时出现的数的个数,和全部不相同数字的个数。set可以去重和排序,开一个set数组进行操作即可代码#include<bits/stdc++.h>using namespace std;int a[55][10086];set<int> va[55];set<int>::iterator it;void solve(int x,int y){ int mx=a[x][0],my=a[y][0]; int fz原创 2022-03-03 22:00:09 · 7269 阅读 · 0 评论 -
L2-007 家庭房产 (25 分)(带边权并查集的应用)
题目描述给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数、人均房产面积及房产套数。输入格式:输入第一行给出一个正整数N(≤1000),随后N行,每行按下列格式给出一个人的房产:编号 父 母 k 孩子1 … 孩子k 房产套数 总面积其中编号是每个人独有的一个4位数的编号;父和母分别是该编号对应的这个人的父母的编号(如果已经过世,则显示-1);k(0≤k≤5)是该人的子女的个数;孩子i是其子女的编号。输出格式:首先在第一行输出家庭个数(所有有亲属关系的人都属于同一个家庭)。随后按原创 2022-03-01 23:41:56 · 311 阅读 · 0 评论 -
L2-004 搜索树判断 (25 分)&&L2-011 玩转二叉树 (25 分)(完全二叉树的一些性质)
题目描述对于二叉搜索树,我们规定任一结点的左子树仅包含严格小于该结点的键值,而其右子树包含大于或等于该结点的键值。如果我们交换每个节点的左子树和右子树,得到的树叫做镜像二叉搜索树。现在我们给出一个整数键值序列,请编写程序判断该序列是否为某棵二叉搜索树或某镜像二叉搜索树的前序遍历序列,如果是,则输出对应二叉树的后序遍历序列。输入格式:输入的第一行包含一个正整数N(≤1000),第二行包含N个整数,为给出的整数键值序列,数字间以空格分隔。输出格式:输出的第一行首先给出判断结果,如果输入的序列是某棵二原创 2022-03-01 23:35:26 · 416 阅读 · 1 评论 -
天梯团体赛L2-001 紧急救援 (25 分)简易过
俗话说做题更比蜀道难,这次又是dijstra的提升,跌跌撞撞改来改去做了一下午,最后看看也就那样。废话不多说,直接开始!题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805073643683840文章目录题目分析:AC代码总结题目L2-001 紧急救援 (25 分)作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一原创 2021-10-13 18:24:19 · 107 阅读 · 0 评论 -
1020 Tree Traversals (25 分)(从小白开始的二叉树的重构)
前言:今天刷到这道题实在太痛苦了,本来树就学得不好,/(ㄒoㄒ)/~~,但是!但是!困难是需要面对的,现在就是直面困难的时候!文章目录一、二叉树的三种遍历两、二叉树的重构(递归)前序遍历+中序遍历重构二叉树后序遍历+中序遍历重构二叉树叁、1020 Tree Traversals代码一、二叉树的三种遍历最为简单,易懂的遍历方法,直接上链接:https://blog.csdn.net/chinesekobe/article/details/110874773理解三种遍历:来,让我们先把所有空结点都补原创 2021-10-05 17:16:17 · 563 阅读 · 1 评论 -
PAT (Advanced Level) Practice甲级练习
今天开始PTA刷题记录,文章持续更新~对于比较难的和有坑的题会有讲解文章目录1001 A+B Format (20 分)1002 A+B for Polynomials (25 分)1005 Spell It Right (20 分)1006 Sign In and Sign Out (25 分)1007 Maximum Subsequence Sum (25 分)(最大子序列和)1008 Elevator (20 分)1009 Product of Polynomials (25 分)1010 Rad原创 2021-09-29 21:01:29 · 475 阅读 · 0 评论 -
Pat出warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_un
计算机程序设计能力考试,输入要有scanf()的返回值,虽然没有什么卵用,还坑人。刚提交就出了warning: ignoring return value of ‘int scanf(const char*, …)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d",&n);的错误。有两个改进办法:1.条件句加上判断,完事儿。2,直接用(void)在sacnf前面。over~for(int原创 2020-11-10 07:42:54 · 4332 阅读 · 2 评论