刷题笔记#PTA
iiamyi
哒啦、哒
展开
-
PAT Advanced 1046 Shortest Distance
#include<stdio.h> #include<vector> using namespace std; int main(){ int n; scanf("%d",&n); vector<int> dis(n); int sum=0; vector<int> porder(n); v...原创 2020-04-28 13:41:56 · 128 阅读 · 0 评论 -
PTA Advanced 1044 Shopping in Mars
设置两个下标,st和ed,设置一个变量sum,sum表示数组中从st到ed的元素和。用pay表示需要付的钱。用一个集合来记录并更新结果。 我一开始的想法是每次固定st,第一次是0,第二次是1…一直向后加到sum第一次大于等于pay,然后更新一下结果,如果sum - pay更小,那清空集合,然后加上这个新的结果st-ed;如果sum - pay相同,那不清空集合,直接新加上这个可能的结果。 但是不能...原创 2020-04-27 18:07:18 · 138 阅读 · 0 评论 -
PTA advanced 1038 Recover the Smallest Number
对于一个字符串序列a1 + a2 + …,如果保证ai + aj < aj + ai对于所有的 i < j 都成立,那么a1 + a2 + …就是字典序就是最小的序列。 下面是简单的一个证明。 如果知道这个的话,那我们的代码就非常简单了。用数组存一下每个字符串,然后用自定义的比较函数sort一下数组就可以了。最后别忘了处理开头的0字符和全部都是0的情况 //ac #include<...原创 2020-04-23 17:50:49 · 102 阅读 · 0 评论 -
PTA advanced 1029 Median
//把两个数组放在一块,用sort排序一下输出中位数。OK~ //c++库里的sort很强大,强烈推荐,感觉这题是我用库函数一种取巧的做法 #define MAXN 200000 #include<stdio.h> #include<algorithm> using namespace std; long int arr[2*MAXN+2]; int main(){ ...原创 2020-03-15 23:19:32 · 81 阅读 · 0 评论 -
PTA advanced 1025 PAT Ranking
//直接用c++ algorithm头文件中sort()函数排序,真好用!! //sort是不稳定的排序。不可以先对注册号排序,再对分数排序来实现同分数的按注册号递增 //思路是sort既可以对整个数组排序,也可以对数组中的一部分排序 //所以我把所有考场的学生都放在一个stu数组里面,每个考场在stu里都有一个开始下标st和结尾下标ed //用sort(stu+st,stu+ed,/按分数排序...原创 2020-03-13 15:08:04 · 95 阅读 · 0 评论 -
PTA advanced 1024 Palindromic Number
//本题思路很简单,就是相加再判断是不是回文数字 //只不过数字太大,用基本类型存会溢出 //我的思路是用int数组,并且逆序存数字(方便相加) //比如5678在数组中是data[0]=8 data[1]=7 data[2]=6 data[3]=5 //这样可以直接for(int i=0;i<size;i++),从个位起开始加 //而且方便处理相加后最高位有进位的情况,用size记录...原创 2020-03-13 13:09:44 · 111 阅读 · 0 评论 -
PTA advanced 1023 Have Fun with Numbers
这道题不是很难,稍稍记录一下_ //ac //本题的思路是原数和乘二后数出现的数字类型相同就可以,不要求数量 //比如123和1123也算Yes #include<stdlib.h> #include<stdio.h> #include<string.h> int main(){ char str[20]; //放入原数字,用long long都...原创 2020-03-12 17:24:00 · 113 阅读 · 0 评论 -
PTA advanced 1021 Deepest Root
//使用非递归栈模拟深度遍历,否则此题用递归深搜会栈溢出 //本题的题意其实就是找出一棵树中所有最长路径的端点 //只需要遍历两次即可找到长度最长的路径的所有端点 //第一次遍历从任意一点开始,记录以这个点为起点的最长路径的尾端点(可能不止一个) //第二次遍历从第一次的尾端点中任选一个为起点,再次记录此次遍历过程中最长路径的尾端点 //两次遍历的尾端点放在一块就是整个树中,最长路径的所有端点了 ...原创 2020-03-11 16:30:18 · 147 阅读 · 0 评论 -
PTA advanced 1014 Waiting In Line
//ac //虽然不难,,但是耗费了大量时间。。。 /*思路 1.用M个队列模拟窗口,为了简单使用了非循环数组当队列。考虑极端情况,只有一个窗口时,队列长度应该设为最大顾客数。 2.用一个队列模拟顾客。每次进黄线操作应该为从顾客队列头取一个顾客送到有空位的最短窗口队列尾 3.窗口在17:00前都接受业务,在17:00(含)之后,即使黄线内还有人也清空他,不接受。 整...原创 2020-03-07 15:08:56 · 223 阅读 · 0 评论