pat乙级1045】的更多相关文章

题目 题目地址:PAT 乙级 1045 题解 本题的解法比较巧妙,刚开始的试着用暴力求解,果不其然时间超限…… 变换思路,既然对于每个元素来说满足的条件是前小后大,那么对数组排序,对应的位置相等的即为题设要求的“可能主元”,但是还有一个条件要保证当前是从左向右遍历的最大值:总结一下两个条件:1. 排序后对应位置数字相等:2. 当前操作元素是从左向右遍历中的最大值 同时还要注意,当输入n值为0时,除了需要输出“可能主元”的个数之外,还需要保留换行符‘\n’ 代码 #include <iostrea…
1045 快速排序 (25分)   著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边. 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元? 例如给定 $N = 5$, 排列是1.3.2.4.5.则: 1 的左边没有元素,右边的元素都比它大,所以它可能是主元: 尽管 3 的左边元素都比它小,但其右边的 2 比它小,所以它不能是主元: 尽管 2 的右边元素都比它大,但…
从左到右扫描时记录扫描到当前下标为止的最大值,如果当前元素大于这个最大值,那么它就大于它左边的所有值.同理,从右到左扫描记录扫描到当前下标为止的最小值,如果当前元素小于这个最大小值,那么它就小于它右边的所有值. 这样只需线性级别的时间. 第一次提交一个测试点格式错误,后来查看柳婼的博客发现当主元数为0时需要输出空行,因为题目要求输出两行,因此最后加一空行. #include <iostream> #include <vector> #include <math.h> #…
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - PAT乙级(Basic Level)真题 之 1021.个位数统计_牛客网 在线提交: https://www.nowcoder.com/pat/6/problem/4047 或 PTA(拼题A,原PAT) https://pintia.cn/problem-sets/9948052602231029…
PAT乙级真题及训练题 1025. 反转链表 (25) 感觉几个世纪没打代码了,真是坏习惯,调了两小时把反转链表调出来了,心情舒畅. 这道题的步骤 数据输入,数组纪录下一结点及储存值 创建链表并储存上下结点"位置" 按照规律遍历一遍链表并反转链表 输出整条反转完的链表 #include <iostream> #include <cstdio> using namespace std; int nextnum[100010],value[100010]; stru…
PAT甲级1045. Favorite Color Stripe 题意: 伊娃正在试图让自己的颜色条纹从一个给定的.她希望通过剪掉那些不必要的部分,将其余的部分缝合在一起,形成她最喜欢的颜色条纹,以保持最喜爱的顺序. 据说正常的人眼可以区分大约少于200种不同的颜色, 所以伊娃最喜欢的颜色是有限的.然而,原始条纹可能很长,而Eva希望拥有最大长度的剩余最喜欢的条纹.所以她需要你的帮助找到她最好的结果. 请注意,解决方案可能不是唯一的,但您只需要告诉她最大长度.例如, 给出一条条纹{2 2 4 1…
题目 题目地址:PAT 乙级 1024 题解 模拟题,重点需要考虑到各种不同情况:简单来说一下: 因为输入格式固定,所以把不同的部分分别存储和处理可以在很大程度上简化运算:其中需要考虑最多的就是小数部分在指数不同时的处理方式,大略可以分为以下几种情况: 1. 指数为正,大于基数(也就是需要在之后补零) 2. 指数为正,小于基数    注:这种情况没有考虑到,一直有一个测试点过不了 3. 指数为负 最后需要说明一点,对于上述第一种情况,如果基数尾部有0,一定要考虑到并且做相应的处理: 代码 #in…
题目 题目地址:PAT 乙级 1017 题解 粗看是一道大数除法题,实际上只不过是通过字符数组模拟除法过程,理解之后还是比较简单的: 具体分析一下本题: 因为题设中的除数(n)是一位整数,因此大幅简化了整个运算过程:在整个运算中最为重要的就是中间变量(sum),判断中间变量sum是否足够大能被除数n整除,这也是本题的关键所在: 通过是否判断sum是否能被整除,可以分为以下两种情况: 1. sum == 0 && num[i] < n (当前运算位num[i]小于除数) 2. 其余情况…
题目 题目地址:PAT 乙级 1015 题解 常规题,难点在于理清楚排序规则,通过比较简洁的方式进行编码: 在这里我选择使用vector进行存储,并使用sort方法排序,因为本题不是简单按照大小排序,因此这里需要再次理解sort方法中的第三个参数,以及它的使用细节: 关于sort的具体使用方法,可以在我之前的博文查看: 还需要最后说明的一点问题是:尽量使用 printf 和 scanf,减少 cout 和 cin 的使用,之前用cin和cout,结果时间超限了…… 代码 #include <io…
题目 题目地址:PAT 乙级 1003 题解 规律观察题,本题的关键在于把题读懂,同时还有几个比较容易疏忽的地方需要注意:总之这道题要考虑的东西更多,细节上也要特别注意: 规律:“如果 aPbTc 是正确的,那么 aPbATca 也是正确的”,这是理解本题的关键信息,观察之后会发现,当b的字符串里再增加一个A,那么T之后的字符串就会多出a个A(特别注意,这里的 ‘ca’ 实际上是 c + a 个A字符的关系),那么这个关系也就显而易见了,只有在 a * b = c 的条件下,才会有这样的结果,我…