![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pat a
6点A君
记录我学习的知识的地方~
展开
-
1001. A+B Format (20)
积极准备pat!解题心得:1、可能是几年没写acm或者用c++来编程,感觉这么一道简单题,还是花了1个小时。。2、一开始直接用几个if来对和进行判断,但提交后总有点错误。经检查发现是一开始用%1000或者%1000000来,但发现有个问题,例如1000000%1000000=0,我一开始天真以为是取后面6位,而且1000001%1000000也不对,好吧。3、最终更换思路,原创 2017-01-02 17:52:33 · 557 阅读 · 0 评论 -
1013. Battle Over Cities (25)
不管如何,还是努力向上吧。这题一开始想不出解法,本来想了想dfs,但没动手,就找了找题解原博客题解,然后发现一个数据结构中一个比较不显眼的知识点---并查集。感觉自己都忘了,就仔细的找了找资料,研究这种解法。。。并查集是一种集合表示,树的一个应用。基本的包括三种操作。initial():初始化工作,一般为自己是自己的集合。s find(x):找到x节点集合的名字,或者理解为找到原创 2017-02-14 15:36:56 · 567 阅读 · 0 评论 -
1011. World Cup Betting (20)
这题相对比较好做。主要就是比大小,唯一值得注意的就是最后面那个四舍五入。。代码如下:#include"stdio.h"#include"string.h"#include"math.h"#include#include#include#include#includeusing namespace std;#define INF 0x7FFFFFFFint mai原创 2017-01-26 18:15:34 · 575 阅读 · 0 评论 -
1010. Radix (25)
这题主要意思是给出一个任意进制的数,在给你一个数,看第二个数在哪种进制下能够与第一个数相等。自己一开始的思路是将其化为整数,然后在把另一个数按一定进制化为10进制数,再比较。最终第一次还是错了,而且代码有点混乱,都是用int。借鉴了sunbaigui的代码思路后,发现了并解决了一些问题:http://blog.csdn.net/sunbaigui/article/details/8原创 2017-01-26 17:33:45 · 469 阅读 · 0 评论 -
1012. The Best Rank (25)
通过对输入数据进行处理,从而来获得自己单科或者平均的最好成绩。一开始,利用vector想来保存动态变化的字符串数组,但老师不成功,最后利用vector来完成,并且通过cin>>输入。代码如下:#include"stdio.h"#include"string.h"#include"math.h"#include#include#include#include#inclu原创 2017-02-13 14:47:38 · 601 阅读 · 0 评论 -
1009. Product of Polynomials (25)
pat,本题的大概意思是多项式乘法,利用两个数组循环相互乘就可以了。解题心得:1、在比较浮点数时候,不要直接“!=0“之类的,fabs来与小数比较如1e-6!!,虽然可能这样比,例子可能是正确的,但还是有bug!!代码如下:#include"stdio.h"#include"string.h"#include"math.h"#include#include#inc原创 2017-01-05 21:56:39 · 497 阅读 · 0 评论 -
1008. Elevator (20)
pat,这题相对比较简单,大概意思就是,在一个固定的序列下,求电梯把按规定序列所有楼层都走一遍,所花费的总时间。代码如下:#include"stdio.h"#include"string.h"#include"math.h"#include#include#include#include#includeusing namespace std;#原创 2017-01-05 20:38:16 · 551 阅读 · 0 评论 -
1007. Maximum Subsequence Sum (25)
pat,这题主要运用动态规划的思想,这里简单记录分析过程。每一项都有一个max,用来记录到它这儿时,最大的连续子序列为多少。解题心得:1、假设走到第k项,这里有两种选择,当max[k-1]>=0时,max[k] = max[k-1]+value[k]; 当max[k-1] 这样做并不会有啥问题,因为就算暂时max[k]还有一些心得,就写在代码注释了。代码如下原创 2017-01-05 20:16:59 · 465 阅读 · 0 评论 -
1006. Sign In and Sign Out (25)u
pat,这题相对于简单点,主要就是根据时间排序,然后找出最先来和最后走的同学学号。解题心得:1、对c++stl库中的sort函数熟悉了一把,会使用了。2、以00:00:00作为起点来比较,这样就轻松多了。代码如下:#include"stdio.h"#include"string.h"#include"math.h"#include#include#include原创 2017-01-05 00:15:51 · 734 阅读 · 0 评论 -
1005. Spell It Right (20)
pat题目大概意思是,接收输入字符串,然后把每一项加起来,然后再按规定格式把和输出。解题心得:1、一道简单题,但貌似c++中字符串相关忘得差不多,也复习一把。2、没注意全为0的特殊情况,导致第一次提交没通过代码如下:#include"stdio.h"#include"string.h"#include"math.h"#include#include#include原创 2017-01-04 16:57:14 · 479 阅读 · 0 评论 -
1004. Counting Leaves (30)
pat。这个题目主要就是存储树以及遍历树。解题心得:1、可能对c++不是很熟,所以一开始我就循序渐进而用了教材上所给的结构体+指针来写。不过,确实有点晕。2、我的树存储方法是:孩子存储法,也就是把每个节点都存在一个数组,然而后面链接着他的所有儿子。3、BFS的原理就是树的层次遍历,所以我还是用了层次遍历,中间再加了一些题目所需要的语句。4、需要注意的地方:①:结构体指针原创 2017-01-04 16:01:32 · 451 阅读 · 0 评论 -
1003. Emergency (25)
pat这题大概意思是,众多城市点,然后某一个城市发生火灾,求你所在城市到目标城市的最短路径,并且能够赶到目标城市的最多消防员,也就是最短路径上涉及所有的消防员之和。解题心得: 1、Dijkstra算法,就是求源点到目标点最短路径。这个算法有点忘,看了书,后来才回想起来。2、dijkstra算法的意思,就是把点分为两个集合,一个集合是已经算出最短路径,另一个就是待算的,每次原创 2017-01-03 20:35:39 · 543 阅读 · 0 评论 -
1002. A+B for Polynomials (25)
pat解题思路:1、这题首先是要理解题目意思,输入两组数,类似于多项式相加,底相同的,指数相加,最后按规定输出就可以了。2、本来这题很快解决了,但提交总是只有示例输入正确。一开始我测试了,好久。后来又经过理解检查发现我有两个地方理解不到位。①、nonzero,也就是非0,如果后项两个为0,就忽略,由于我一开始想到0可能特殊,所以就把input数组初值都设为-1。因而出现问题。原创 2017-01-02 20:41:09 · 522 阅读 · 0 评论 -
1014. Waiting in Line (30)
模拟的题。代码如下:#include"stdio.h"#include"string.h"#include"math.h"#include#include#include#include#include#includeusing namespace std;#define INF 0x7FFFFFFFstruct customer{ int startTime;转载 2017-02-14 21:53:01 · 434 阅读 · 0 评论