PAT刷题笔记
文章平均质量分 50
从零开始刷PAT!希望今年可以做完PAT
岁余十二.
欲买桂花同载酒
展开
-
PAT A1003 Emergency
一、题目详情 PAT 1003题目 相当于给定一个无向图,边权和点权,求出最短路径的条数和最短路径中点权之和的最大值 输入解释 第一行有四个整数:N、M、C1、C2,分别为图中的节点数,边数,起点编号和终点编号 N个整数,依次为节点的点权 接下来M行为节点的端点编号 边权 输出解释 两个数字,分别为最短路径的条数和最短路径中点权之和的最大值 思路 固定起点和终点,典型的Dijkstra算法 题目中还需要求出点权之和最大值,因此可以用一个数组w,w[u]表示起点s到顶点u可以得到的最大点权之和 每次原创 2021-11-17 22:49:29 · 200 阅读 · 0 评论 -
PAT A1013 Battle Over Cities
一、题目详情 输入解释 第一行输入三个整数N、M、K,分别为图中的节点数、边数和查询数 下面M行依次为各边的两个端点 最后一行为K个整数,是要查询的节点。 输出解释 K行,对每个查询来说,删除该节点后为使图连题所需要添加的边数 思路 显而易见~要添加的边数等于连通块数-1,可以用dfs遍历来求出连通块数。 二、实现代码 #include<iostream> #include<vector> #include<cstring> //用到memset时要包含 using原创 2021-11-10 19:23:42 · 217 阅读 · 0 评论 -
PAT A1053 Path of Equal Weight
一、题目详情 输入解释 第一行给出三个数字N、M、S,分别为树的结点数量、树的非叶节点数量、给定的权重 第二行给出N个数字,分别是编号1~N的结点的权重 接下来M行依次为:非叶节点的编号 该结点的子结点个数 子结点的编号 输出解释 每行输出一个路径(以结点的权重表示),使得路径上的结点权重相加之和等于给定的权重 思路 首先是确定数据结构,考虑静态实现,邻接表可以用vector<int> child来实现。每个结点都有一个权重,所以考虑用结构体node来表示结点。node中有一个int we原创 2021-10-30 19:38:02 · 101 阅读 · 0 评论 -
PAT A1090 Highest Price in Supply Chain
一、题目详情 输入解释 第一行输入三个正整数,N、P、r,N为树中的元素个数,P为树根处的货物价格,r为每走一层货物价格的上涨比率r%(变为父节点价格的(1+r%)倍) 2. 下面1行依次输入1~N号结点的父节点编号(根节点则输入-1) 输出解释 输出两个数字,以空格分隔,分别是:能得到的最大价格(精度为两位小数) 具有最大价格的节点个数 思路 将供销商问题抽象成树,因为题中说可以保证每一个节点都只有一个供应来源,并且供应链中没有环,所以这个抽象过程应该还是挺明显的~ 要理解求最大价格实际就是求树的深原创 2021-10-30 11:06:24 · 91 阅读 · 0 评论