PTA
我为摸鱼代盐
时间会给出答案
展开
-
PAT (Advanced Level) Practice 1088 Rational Arithmetic (20 分)
题目不贴了,主要是坑点写写吧 首先是最不应该的,Inf打成了inf,害我两个测试点一直没过; 其次就是在判断分子和分母是否小于0时,不能使用num*den<0或者num<0||den<0,这样会溢出或者疏忽情况,而要使用num<0&&den>0||num>0&&den<0,因为分子分母同时为负数时,就是正数; 还有就是变量类型一定要是long long,否则会溢出。 这道题本质上就是1081的拓展,其实实现起来不怎么困难,主要是细节问原创 2021-10-03 11:07:12 · 94 阅读 · 0 评论 -
pat advance 1072 Gas Station (30 分) 玄学2,3测试点
题目就不贴了,下面是ac的代码,搞不明白为什么将初始化的位置从后面换到前面就过了,如果有一样问题的,可以参考一下,虽然我也不知道为什么 (其实不用存vector< node >直接设置几个变量迭代也可以,那样更省时间) #include<iostream> #include<string.h> #include<vector> #include<algorithm> #define inf 0x3f3f3f3f #define maxn 1100原创 2021-08-30 11:03:50 · 179 阅读 · 0 评论 -
科学计数法模板
纯模拟需要考虑的太多了,不如背板子~~ 科学计数法计算逻辑: 1、找小数点位置。 2、找某数第一个不为0数字的位置。 3、将第一个不为0数字后的数字加入temp(有效数字) 4、第二点减第一点为指数值 5、判断指数和有效数字是否相等即可。 ...原创 2021-08-19 09:41:13 · 92 阅读 · 0 评论 -
Dijkstra算法理解
Dijkstra算法 这个算法最通俗的解释就是单源最短路径算法,展开来讲,就是从图中一个点到其他点的最短路径(好像是废话) Dijkstra算法的核心就是贪心,首先把各个点与起点的距离记录在一个dis数组(起初除了起点,其他的点的最段距离都是不确定的,所以需要一个vis数组来判断这个点是否是距离起点的最短路径点)中,从dis数组中找到最短的那个点,且这个点肯定是目前距离起点最近的(这个想不明白的看看图就知道了),然后以这个点为”中转站“,判断比较从中转站到别的点是否距离更短,如果更短,那就更新dis数组,如原创 2021-07-25 11:14:52 · 341 阅读 · 2 评论 -
重排链表
重排链表 (25分) 给定一个单链表 L1 →L2 →⋯→Ln−1 →Ln ,请编写程序将链表重新排列为Ln →L1 →Ln−1 →L2 →⋯。例如:给定L为1→2→3→4→5→6,则输出应该为6→1→5→2→4→3。 输入格式: 每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址和结点总个数,即正整数N (≤10 5 )。结点的地址是5位非负整数,NULL地址用−1表示。 接下来有N行,每行格式为: Address Data Next 其中A原创 2021-02-01 07:51:46 · 229 阅读 · 0 评论