随笔分类 - PAT
摘要:##题目大意 给出n个城市之间有相互连接的m条道路,当删除一个城市和其连接的道路的时候,问其他几个剩余的城市至少要添加多少个路线才能让它们重新变为连通图。 ##思路 添加的最少的路线,就是他们的连通分量数-1,因为当a个互相分立的连通分量需要变为连通图的时候,只需要添加a-1个路线,就能让他们相连。
阅读全文
摘要:1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 https://www.cnblogs.com/yue36/p/13332890.html 1013 https://www.cnblogs.com/yue36/p/1360067
阅读全文
摘要:##题目大意 给定一个三维空间,0表示正常1表示有肿瘤,肿瘤块的大小大于等于t才算作是肿瘤。计算所有满足肿瘤块的大小之和。 题目链接 ##思路 用三维数组存储。BFS广度优先搜索。注意细节。 ##AC代码 #define _CRT_SECURE_NO_WARNINGS #include<iostre
阅读全文
摘要:##题目大意 给出一个n个数的序列,数字为0~n-1的乱序,每次只能用数字0和另一个数交换。经过若干次能使序列变成有序的,问最少需要几次交换。 ##思路 贪心策略。 (1)每次让0占的位置上本来应该占的数字与0交换,交换结束后该数归位。 (2)但有可能数字0在自己的位置上(即第0位),但仍有其他数字
阅读全文
摘要:##7-1 Prime Day (20分) #include<cstdio> #include<iostream> #include<cmath> #include<string> using namespace std; bool ifprime(int x) { if (x < 2)return
阅读全文
摘要:##题目大意 给出需要调整的车站编号,从0处出发,一路上顺便调整途径的车站,使得每个车站的车辆数是Cmax的一半,多的带走少的补齐。选最短路,最短相同选从0处带的车最少的路,若还相同则选择带回0处的车最少的路。 输出要带的车辆数,路径,带回的车辆数(返回时直接回,不再调整)。 ##思路 ###题目生
阅读全文
摘要:##题目大意 给出供应链总人数、起始货源的价格、每次经销的涨幅;以及供应链中所有人的直接供应者的编号。求出最大价格和销售最大价格的销售者的人数。 ##思路 显然整个供应链可以看作一棵树。题目转化为给一棵树,在树根出货物的价格为p,然后每往下走一层,价格增加r%,求深度最大的结点的价格,以及这个价格的
阅读全文
摘要:##题目大意 给定原始序列和由某排序算法产生的中间序列,请你判断该算法是插入算法还是归并算法。首先在第1行中输出“Insertion Sort”表示插入排序、或“Merge Sort”表示归并排序;然后在第2行中输出用该排序算法再迭代一轮的结果序列。 ##思路 插入排序排到一半的序列满足前半部分有序
阅读全文
摘要:##题目大意 给出两个分数,求加减乘除的结果。 ##思路 求最大公约数要用辗转相除法,否则会超时。 判断符号不能两数相乘,因为乘积可能超过long long范围。 ##tips 题目说了输入格式一定是a1/b1 a2/b2,所以直接输入即可,不用字符串来转(在这里耗了好多时间和代码...555...
阅读全文
摘要:(单源最短路径;多尺标;记录路径条数) ##题目大意 从一个城市出发有多条路到达“ROM”,求最佳路径。首先选择最短路径;若最短路径相同,选择幸福指数最大的;若还相同,选择平均幸福指数最大的(平均不包括起点,因为起点没有幸福指数)。同时还要在第一行输出最短路径条数、路径长度、幸福指数、平均幸福指数;
阅读全文
摘要:拓扑排序 ##题目大意 给出拓扑结构图和一些序列,判断哪些序列不是该图的拓扑排序结果。 ##思路 用邻接表G存储这个有向图,并将每个节点的入度保存在rudu数组中。对于每一个要判断的序列,依次遍历其结点,如果当前结点的入度不为0则表示不是拓扑序列,每次判断某个点后将它所指向的所有结点的入度-1。 #
阅读全文
摘要:(dfs深度优先搜索) ##思路 先把i从0开始所有的i的p次方的值存储在v[i]中,直到v[i] > n为止。(如果在递归过程中计算次方,会做很多重复工作,很浪费时间。) 然后深度优先搜索,记录当前正在相加的index(即v[i]的i的值),当前的总和tempSum,当前K的总个数tempK,以及
阅读全文
摘要:排序(需优化) ##题目大意 给出n个人的姓名、年龄和拥有的钱,然后进行k次查询,每次查询输出在年龄区间内的财富值的从大到小的前m个人的信息。如果财富值相同就就先输出年龄小的,如果年龄相同就把名字按照字典序排序输出。 ##思路 不能先排序然后根据每一个条件再新建一个数组、对新数组排序的方法,这样测试
阅读全文
摘要:完全二叉树 ##题目大意 给出各个结点的左右孩子,问这棵树是不是完全二叉树,若是则输出YES和最后一个结点编号;若不是则输出NO和根节点编号。N个结点编号0~N-1。 ##思路 结构体数组保存树,为了找到根节点,输入时用bool数组ifchild记录,若有孩子,则该孩子的ifchild值为true,
阅读全文
摘要:最短路径 ##题目大意 从m个加油站里面选取1个站点,让它和离它最近的居民区距离最远,并且没有超出服务范围ds之内。如果有很多个最远的加油站,输出距离所有居民区距离平均距离最小的那个。如果平均值还是一样,就输出加油站编号最小的那个。 ##思路 Dijkstra算法。注意每次调用Dijkstra都要初
阅读全文
摘要:(排序;排名的实现) ##题目大意 现已知n个考生的3门分数,平均分可以按照这三门算出来。然后分别对这四个分数从高到低排序,这样对每个考生来说有4个排名。m个查询,对于每一个学生id,输出当前id学生的最好的排名和它对应的分数,如果名次相同,按照A>C>M>E的顺序输出。如果当前id不存在,输出N/
阅读全文
摘要:并查集 ##题目大意 给出每个人名下的房产和家庭关系,求出每个家庭的总人数即人均房产数和房产面积。第一行输出家庭个数(所有有亲属关系的人都属于同一个家庭)。随后按下列格式输出每个家庭的信息:家庭成员的最小编号 家庭人口数 人均房产套数 人均房产面积。其中人均值要求保留小数点后3位。家庭信息首先按人均
阅读全文
摘要:(重要!堆!) ##题目大意 给出n和n个数的序列a和b,a为原始序列,b为排序其中的一个步骤,问b是a经过了堆排序还是插入排序的,并且输出它的下一步。 ##坑 测试点2:插入排序时,要考虑输入的两个序列是相同的情况。即第一次判断时原序列的第一个数和第二个数本身有序(题目保证了答案唯一,所以不会出现
阅读全文
摘要:并查集 ##AC代码 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include <cstdio> #include <vector> #include<algorithm> using namespace std; #define N 1
阅读全文
摘要:##题目大意 给出二叉搜索树的树型和各个节点值,求出该树的后序遍历结果。 ##思路 用静态结构体数组表示树。序列按照值从小到大即树的中序遍历结果。根据输入确定树型,在中序遍历的过程中填入值。接着层序遍历一次输出即可。(也可遍历时标记满二叉树情况下的index,根据index值从大到小输出即为层序遍历
阅读全文

浙公网安备 33010602011771号