随笔分类 - PAT甲级
摘要:好几天没做题了...这一道题用的是贪心。贪心是一种思路,每一步都要做到最优,一步步实现局部最优,从而实现整体最优。思路参考了算法笔记。(设终点是油价为0,距离起点为dis的车站,) 1.当前车站为now,下一车站为next。next挑选策略为:在当前车站加满油可以到达的所有车站里找next。next
阅读全文
摘要:这题第四个测试点是格式控制...其实看题的时候就想到要注意这一点,写着写着就忘了。cin,cout依然容易超时。刚开始第20行写成 scanf("%d%c%d",&add1,&NODE.c,&NODE.next); 没办法正常读取,想来是因为NODE.c吸收了空格?后来改成 scanf("%d %c
阅读全文
摘要:第一次做图形打印的题。懵逼。找其他人的解法来学习。意外的发现string有substr()这个好工具。 字符串长度设为len,n=n+2。令 n/3=n1 。把n平均分成三份,n1为截取商的部分, n2=n/3+n%3 ,余数部分全给n2。这使得n1已经尽可能的大,至多与n2相等,这是题目的要求。n
阅读全文
摘要:最短路径问题。一定要注意将visited[u]是否等于0加入判断!很关键,还是没有理解透,所以才忘了加。(第42行和第45行) 其实图相关的题通过率蛮高的...套路题,坑少。 1 #include <iostream> 2 #include<cstdio> 3 #include<vector> 4
阅读全文
摘要:这题...直接用sort函数排个序就好了啊...其他博客说什么会爆内存,没有吧。我这代码不管内存还是用时表现都挺好的...注意点有两个,第一序列的个数分为奇数和偶数,两种情况下的中位数位置要注意。第二,序列数据类型用long long。 ps:这题原来的内存限制是1.5MB,那我的代码的确是会超过这
阅读全文
摘要:这题不难,貌似乙级也有一样的题?简单的排序问题。有一点问题是,用cin,cout绝对超时,查了一下,用一下代码可以加速至与scanf,printf速度一样。 ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); 好像确实可以加速,但是否能通过还是
阅读全文
摘要:简单题。把3个10进制数转化为13进制,结果只有一位数字时左边用0补齐。如十进制0输出00。 1 #include <iostream> 2 #include<cstdio> 3 using namespace std; 4 int main() 5 { 6 char res[10]; 7 char
阅读全文
摘要:不得不说,这不是一道好题,很烂...(这也许就是模拟题的特点吧,考的是细心程度和debug调试能力)逻辑复杂,需要非常周全精细的考虑,需要避免的坑有很多。这种类似排队的模拟题,目前为止这是第三道(1014,1017,1026),有着大体相似的描述和思路(我回去看了看之前的记录,发现这种类型的题真的很
阅读全文
摘要:这题还算简单的。也一次提交就过了。只是用时和内存比不上柳神的代码...不知道为什么。可能string和cin,cout比较耗时吧... 1 #include <iostream> 2 #include<cstdio> 3 #include<string> 4 #include<vector> 5 #
阅读全文
摘要:题不难。我以为我的已经够简洁了,没想到还有更简洁的,algorithm里面有reverse()函数,可以直接给出逆序结果,方便多了(虽然不用这个也不会很麻烦,但还是学学STL的使用)。一看这题应该要想到用字符模拟运算,看看数据范围就知道了,int类型的数据范围简单的记为10的9次方,有10位数,lo
阅读全文
摘要:模拟整数乘法,比较简单的乘法模拟,因为一个因数是2,只有一位。注意处理可能产生的进位,测试点2和7测的就是这个。(理解题意很重要,pat可能有的题不难,但是得仔细琢磨坑点在哪里) 用digit1[]记录原数字中各位数字的出现次数,digit2[]存储结果中各位数字出现的次数,逐个比较,如果次数不相等
阅读全文
摘要:这个题挺好的。学习了map和set的使用,还有字符串的接收和输出。参考了柳神的代码。 题目要求根据title,author,key,publisher,year来输出对应书的编号,思路是建立map<关键码,编号的集合>,关键码就是title,author,key,publisher,year,根据在
阅读全文
摘要:暴力搜索...用dfs判断连通分量个数。如果不是1,连通分量个数,如果是1,输出根节点序号(使得树高最大的根节点)。 有人用两次dfs,说什么这两次搜索的末端节点的并集就是答案,这背后是不是有什么数学原理?不太理解。我直接暴力搜索了,逐个节点进行dfs,过程中记录节点高度。好在没有超时。这道题给了2
阅读全文
摘要:这题通过率蛮高的,没有坑,但是如果不知道如何通过后序和中序来还原一个二叉树的话,这题可以说是无从下手。这题对我来说还算比较难的,之前没做过树的题。算是一个新知识。 1 #include <iostream> 2 #include<vector> 3 #include<algorithm> 4 usi
阅读全文
摘要:本题一遍过...20分的题好像相对来说是比较简单的。本题主要涉及进制转换和回文判断。 1 #include<iostream> 2 #include<vector> 3 #include<cstdio> 4 using namespace std; 5 int main(){ 6 int n,b;
阅读全文
摘要:这题也很好。涉及多条最短路径问题。使用Dijkstra找到多条最短路径,再使用DFS对路径进行回溯选取最佳的最短路径。 1.只用Dijkstra不能拿满分。 2.最短路径的优先级是(由高到低):路径最短的;从PBMC取走的自行车数目最少的;从车站取回的自行车数目最少的。 3.存储多条最短路径的策略是
阅读全文
摘要:我是不是走火入魔了?(脏话)这题和1014很像,思路也差不多,自己把总体思路写下来了,一直不通过,是自己都没想明白window[]数组里面存的应该是什么,脑子稀里糊涂,明明想到了,却又被别的想法给搅乱,错就错在window[]的定义自己没想明白。 1.将时间转化为秒进行比较和运算。 2.每个人拥有2
阅读全文
摘要:本题完全按照别人的思路来写。之前在如何处理输入数据上想了很久,发现还是不能处理好,于是参考了别人的思路。我好菜... 1.对于输入的数据,先按照姓名排序,如果名字相同按照时间排序(时间转化为分钟)。分别比较相邻两个元素的名字是否相同,再比较on-line和off-line的标志是否相异,即可判断是否
阅读全文
摘要:应该是比较简单的吧...知识点有素数判断,进制转换。还有本题特别的输入和输出手法(while...!=EOF) 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 bool isPrime(int x){ 5 if(x<=
阅读全文
摘要:这题好难的。。想了很久怎么处理,参考了别人的代码,发现一个测试点的疏漏,pat的测试点给的还不是很全面。自己原来的代码就不提了,很垃圾,只过了测试点1拿了12分,还有两个测试点超时,其他测试点答案错误...我还想了好久...太菜了。学习别人的思路,自己改动了一些地方。 1.构造结构体Que,成员有l
阅读全文

浙公网安备 33010602011771号