PAT甲级1003题解——Dijkstra】的更多相关文章

解题步骤: 1.初始化:设置mat[][]存放点之间的距离,vis[]存放点的选取情况,people[]存放初始时每个城市的人数,man[]存放到达每个城市的救援队的最多的人数,num[]存放到达每个城市的最多的人数(在最短路径的基础之上),dist[]存放从起点开始到达每个城市的最短的路径(随着每次选取点而更新) 2.核心算法:按照Dijkstra算法思想,从起点出发,不断选择一个点使得通过该点到达其他点的距离比直接通过已知点到达的距离更短,则更新最短距离数组dist[],这里分为两种情况1:…
PAT甲级 1003 Emergency C++ As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams in each city and the length of each road betwee…
PAT甲级1003. Emergency 题意: 作为一个城市的紧急救援队长,你将得到一个你所在国家的特别地图.该地图显示了几条分散的城市,连接着一些道路.每个城市的救援队数量和任何一对城市之间的每条路线的长度在地图上标记.当你从其他城市发出紧急电话时, 你的工作是尽快引导你的人到这个地方,同时在途中尽可能多的呼唤城市中的别的救援队. 输入 每个输入文件包含一个测试用例.对于每个测试用例,第一行包含4个正整数:N(<= 500) - 城市数量(城市编号从0到N-1),M - 道路数量C1和C2…
题目分析: 本题我第一次尝试去做的时候用的是优先队列,但是效率不仅代码量很大,而且还有测试样例过不去,很显然没有找到一个好的数据结构来解决这道题目(随着逐渐的刷PAT甲级的题会发现有时选择一个好的解题方向真的比一些花里胡哨的技巧重要的多),对于本题,我们需要模拟的是一个去银行接受服务的过程,银行有k个窗口,而在8点开门之前所有到达的人都在门外排队(在8点后到达的人如果有人则需要排队,窗口中有空位则会选择最空闲的进行自己的服务),首先我们需要对n个用户按照到达的时间进行排序,然后建立一个windo…
2019 秋季 PAT (Advanced Level) C++题解 考试拿到了满分但受考场状态和知识水平所限可能方法不够简洁,此处保留记录,仍需多加学习.备考总结(笔记目录)在这里 7-1 Forever (20 分) "Forever number" is a positive integer A with K digits, satisfying the following constrains: the sum of all the digits of A is m; the…
As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams in each city and the length of each road between any pair of cities are…
前言: 本题是我在浏览了柳神的代码后,记下的一次半转载式笔记,不经感叹柳神的强大orz,这里给出柳神的题解地址:https://blog.csdn.net/liuchuo/article/details/52316405 题意: 有一个租借自行车的系统由n个点组成,用户可以在这n个点任意一个点借车或者还车,每个点都遵循一个共同的上限c,这里我们称一个点的状态时完美的如果这个点的车的数量为c/2,(每个点由1~n标号),而我们的出发点为0点,整个系统每次会有一个sp点发出警报,说明这个sp点的自行…
https://pintia.cn/problem-sets/994805342720868352/problems/994805523835109376 As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue…
1003. Emergency (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount…
题目分析: 本题计算过程简单,但翻译令我迷茫:题意读清楚很重要(反正我是懵逼了)对于一个10进制的数,如果它是一个素数,把它转换成d进制,再将这个序列逆序排,这个逆序的d进制数的10进制表示如果也是素数,则输出Yes,否则No #include<iostream> #include<cmath> using namespace std; ]; //存放n转换成的d进制数的每一位 int cnt; //存放d进制的位数 bool isPrime(int x){ ) return fa…
题目分析: 本题初步浏览题目就知道是并查集的模板题,数据输入范围N为1~1000,则M的范围为0~1000^2,通过结构体记录每一对连线的关系,p[]数组记录每个节点的跟,对于k次查询,每次都要重新维护p[]数组,而每次的区别在于都要排除被占领的节点重新维护p[]数组的节点的链接关系,而最终的答案就是集合数-2(占领点一定是单独的集合,n个集合需要n-1条边就能相连) #include<iostream> using namespace std; struct Node{ int from;…
题目分析: 本题的算法并不复杂,主要是要搞清楚数据的存储方式(选择一种合适的方式存储每个学生的四个成绩很重要)这里由于N的范围为10^6,故选择结构体来存放对应下标为学生的id(N只有2000的范围,所以结构体开10^6其实有点浪费空间),再者对于每个学生的每种成绩的排名我们通过下面的这种方式可以巧妙得到(而且单科成绩是会出现重复的,即并列的情况): 获取排名的方法:其实很简单,由于会出现并列单科成绩的方式,且单个学生的成绩是存储在结构体里的,通过多次排序的方式去解决这道题目是不太合适的,这里用…
题目分析:本题开始一直在考虑如何将每一个节点通过一种合适的数据结构存储起来(一对多的关系),最后发现借助并查集的思想可以用一个数组p,p[i]存放i节点的父节点,每次查询编号为i的节点属于第几层且判断是否有以该点位父元素的节点(判断该点是否为叶子节点,是则floor[对应层数]++)由于本题的图不存在环路,则借助这个p数组则能十分巧妙将整棵树存储下来,本题还借助了vis[]数组存放某个节点是否出现过(因为N个节点并不一定是有序出现的),mat数组存放下标为i时是否是叶子节点,floor[]数组i…
题目分析:对于每一个点来说,如果选择合并入包含前一个点的序列那么只有在前一个点的序列不为负数(这里指的是包含前一个位置的数的一个连续序列的和不为负数),当前点才会将自己也加入这个子序列,否则,当前点则会以自身为起点作为子序列的开始(这里的贪心的思维是每个点尽可能的使得自己所融入的连续子序列的和一定是至少大于等于自身的,只要包含前一个点的子序列的和大于等于0则自己就会加入),我们用结构体存储数据,包括下标为i的数的值,包含该值的最大的连续子序列的和,和开始位置(结束位置就是自己i),最后遍历一遍找…
最短路径 Emergency (25)-PAT甲级真题(Dijkstra算法) Public Bike Management (30)-PAT甲级真题(Dijkstra + DFS) Travel Plan (30)-PAT甲级真题(Dijkstra + DFS,输出路径,边权) All Roads Lead to Rome (30)-PAT甲级真题-Dijkstra + DFS Online Map (30)-PAT甲级真题(Dijkstra + DFS) 最短路径扩展问题 要求数最短路径有多…
题目 题目地址:PAT 乙级 1003 题解 规律观察题,本题的关键在于把题读懂,同时还有几个比较容易疏忽的地方需要注意:总之这道题要考虑的东西更多,细节上也要特别注意: 规律:“如果 aPbTc 是正确的,那么 aPbATca 也是正确的”,这是理解本题的关键信息,观察之后会发现,当b的字符串里再增加一个A,那么T之后的字符串就会多出a个A(特别注意,这里的 ‘ca’ 实际上是 c + a 个A字符的关系),那么这个关系也就显而易见了,只有在 a * b = c 的条件下,才会有这样的结果,我…
Dijkstra PAT (Advanced Level) Practice Dijkstra 相关题 目录 <算法笔记>重点摘要 1003 Emergency (25) <算法笔记> 10.4.1 Dijkstra 重点摘要 对任意给出的图 G(V,E) 和 起点 S,终点 T,求 S 到 T 的最短路径 1. 简介 解决单源最短路问题 只能处理所有边权均非负的情况 若出现负数,最好使用 SPFA 算法 2. 邻接矩阵 const int MAXV = 1000; const i…
博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6102219.html特别不喜欢那些随便转载别人的原创文章又不给出链接的所以不准偷偷复制博主的博客噢~~ 时隔两年,又开始刷题啦,这篇用于PAT甲级题解,会随着不断刷题持续更新中,至于更新速度呢,嘿嘿,无法估计,不知道什么时候刷完这100多道题. 带*的是我认为比较不错的题目,其它的难点也顶多是细节处理的问题~ 做着做着,发现有些题目真的是太水了,都不想写题解了…
2019 秋季 PAT 甲级 备考总结 在 2019/9/8 的 PAT 甲级考试中拿到了满分,考试题目的C++题解记录在这里,此处对备考过程和考试情况做一个总结.如果我的方法能帮助到碰巧点进来的有缘人那就更好了Orz 目录 一.备考内容 1.  <算法笔记>(←阅读内容目录在这里) 2. PAT 题库刷题 3. 题型总结 + 刷题笔记 (←笔记目录在这里) 二.考试情况 1. 考前准备 2. 考试过程 3. 对这次考试的总结(碎碎念,可忽略) 一.备考内容 1.  <算法笔记>…
PAT甲级1131. Subway Map 题意: 在大城市,地铁系统对访客总是看起来很复杂.给你一些感觉,下图显示了北京地铁的地图.现在你应该帮助人们掌握你的电脑技能!鉴于您的用户的起始位置,您的任务是找到他/她目的地的最快方式. 输入规格: 每个输入文件包含一个测试用例.对于每种情况,第一行包含正整数N(<= 100),地铁线数.然后N行跟随,第i(i = 1,...,N)行以格式描述第i条地铁线: M S [1] S [2] ... S [M] 其中M(<= 100)是停止次数,S [i…
PAT甲级1111. Online Map 题意: 输入我们当前的位置和目的地,一个在线地图可以推荐几条路径.现在你的工作是向你的用户推荐两条路径:一条是最短的,另一条是最快的.确保任何请求存在路径. 输入规格: 每个输入文件包含一个测试用例.对于每种情况, 第一行给出两个正整数N(2 <= N <= 500),M分别是地图上街道交叉路口的总数和街道数.然后M行跟随,每个描述一个街道的格式: V1 V2单程长度时间 其中V1和V2是街道两端的索引(从0到N-1);一- 方式是1,如果街道从V1…
PAT甲级1087. All Roads Lead to Rome 题意: 确实有从我们这个城市到罗马的不同的旅游线路.您应该以最低的成本找到您的客户的路线,同时获得最大的幸福. 输入规格: 每个输入文件包含一个测试用例.对于每种情况,第一行包含2个正整数N(2 <= N <= 200),城市数,K, 双城之间的路线总数;其次是起始城市的名称.下一个N-1行每个都给出一个城市的名字和一个整数,代表从城市可以获得的幸福,除了起始城市.然后K行跟随,每个描述两个城市之间的路线,格式为"C…
PAT甲级1076. Forwards on Weibo 题意: 微博被称为中文版的Twitter.微博上的一位用户可能会有很多关注者,也可能会跟随许多其他用户.因此,社会网络与追随者的关系形成.当用户在微博上发布帖子时,他/她的所有跟随者可以查看和转发他/她的帖子,然后可以由他们的追随者再次转发. 现在给出一个社交网络,假定只计算间接跟随者的L个级别,您应该计算任何特定用户的最大潜在潜在金额. 输入规格: 每个输入文件包含一个测试用例.对于每种情况,第一行包含2个正整数:N(<= 1000),…
PAT甲级1018. Public Bike Management 题意: 杭州市有公共自行车服务,为世界各地的游客提供了极大的便利.人们可以在任何一个车站租一辆自行车,并将其送回城市的任何其他车站. 公共自行车管理中心(PBMC)不断监测所有车站的实时能力. 如果一个车站正好半满,那么一个车站据说处于完美的状态.如果车站充满或空,PBMC将收集或发送自行车,以调整该车站的状况.此外,所有的车站也将进行调整. 当报告问题站时, PBMC将始终选择到达该站的最短路径.如果有多于一条最短路径,则需要…
树(23) 备注 1004 Counting Leaves   1020 Tree Traversals   1043 Is It a Binary Search Tree 判断BST,BST的性质 1053 Path of Equal Weight   1064 Complete Binary Search Tree 完全二叉树的顺序存储,BST的性质 1066 Root of AVL Tree 构建AVL树,模板题,需理解记忆 1079 Total Sales of Supply Chain…
PAT甲级考前整理之一网址:https://www.cnblogs.com/jlyg/p/7525244.html,主要总结了前面131题的类型以及易错题及坑点. PAT甲级考前整理三网址:https://www.cnblogs.com/jlyg/p/10364727.html主要是讲132题开始的题目. 考前注意: 1.写函数(有返回值的函数)容易忘记返回值,可能本地运行没问题,但是提交了就会有问题. 2.不要把strlen()函数写到for.while的循环中,有时候会超时,最好是 int…
   转载请注明出处:https://www.cnblogs.com/jlyg/p/7525244.html 终于在考前,刷完PAT甲级131道题目,不容易!!!每天沉迷在刷题之中而不能超脱,也是一种境界.PAT甲级题目总的说卡题目的比较多,卡测试点的比较少,有些题目还会有题意混淆,这点就不吐槽了吧.静下心来耍这130道题,其实磨练的是一种态度与手感,养成的是一种习惯.热爱AC没有错!!(根据自己的刷题情况持续更新中,这次是第二遍刷了,发现换了新网站后,oj严格很多了,有些之前可以过的,现在已经…
PAT甲级最短路 主要算法:dijkstra 求最短最长路.dfs图论搜索. 1018,dijkstra记录路径 + dfs搜索路径最值 25分,错误点暂时找不出.. 如果只用dijkstra没法做,只能得20分 #include<bits/stdc++.h> using namespace std; const int inf = 0x3f3f3f3f; const int maxn = 510; int cmax,n,ter,m; int caps[maxn]; int g[maxn][m…
本文为PAT甲级分类汇编系列文章. 集合.散列.数学.算法,这几类的题目都比较少,放到一起讲. 题号 标题 分数 大意 类型 1063 Set Similarity 25 集合相似度 集合 1067 Sort with Swap(0, i) 25 通过与0号元素交换来排序 数学 1068 Find More Coins 30 子集和问题 算法 1070 Mooncake 25 背包问题 算法 1078 Hashing 25 散列 散列 1085 Perfect Sequence 25 符合约束的…
本文为PAT甲级分类汇编系列文章. 图,就是层序遍历和Dijkstra这一套,#include<queue> 是必须的. 题号 标题 分数 大意 时间 1072 Gas Station 30 最短距离最大,距离不超限 200ms 1076 Forwards on Weibo 30 一定层数的转发计数 3000ms 1079 Total Sales of Supply Chain 25 计算供应链总销售额 250ms 1087 All Roads Lead to Rome 30 复杂权重的最短路…