
pat
之井
路漫漫其修远兮
展开
-
pat 甲级 1005 Spell It Right
https://www.patest.cn/contests/pat-a-practise/1005字符串处理 1. int是 2*10*9 long long是 9*10*19 题目要求 10*100 所以用char数组存起来 再遍历求和 2.map赋值要放在主函数中,不然会报错 3. sprintf数字串存入数字整型数组会报错(?)#include &...原创 2018-03-17 10:50:00 · 298 阅读 · 0 评论 -
蓝桥杯练习系统 1 核桃的数量
问题描述 小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:各组的核桃数量必须相同各组内必须能平分核桃(当然是不能打碎的)尽量提供满足1,2条件的最小数量(节约闹革命嘛)输入格式 输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c<30) 输出格式 输出一个...原创 2018-03-15 15:49:14 · 381 阅读 · 0 评论 -
一维&二维 前缀和优化
了解了一个优化问题 简单说就是俩公式一维类似于 5 3 6 9 7 下标 1 2 3 4 5 求【2-4】的和用公式优化,不每一个都加一遍{ m/k - (n-1)/k } 求区间内 是k的倍数的 数的 个数 { f[n] = f[n-1] + n } 求区间和二维二维就是变成求矩阵的和f[ i ][ j ] = f[ i-1 ][ j ]...原创 2018-07-31 10:09:27 · 483 阅读 · 0 评论 -
1062 最简分数
1062 最简分数求两个数的最大公因数 (12 ,30 — 6)int gcd(int a, int b){ return b==0?a:gcd(b, a%b);}有公因数的返回公因数 没有公因数返回 1#include <cstdio>#include <iostream>#include <cstring>#include <sstream>using namespace原创 2017-11-10 11:39:25 · 220 阅读 · 0 评论 -
错误的1059
#include <cstdio>#include <iostream>using namespace std;int N, arr[1100], K, k;int su(int m){ for(int i=2; i*i<m; i++){ if(m%i==0) return 1; } return 0;}int main(){ cin >> N;原创 2017-11-12 16:43:48 · 1015 阅读 · 0 评论 -
pat 甲级 1003 Emergency
求最短路 dijkstra算法 搞清各个变量的意义 不断更新点#include &lt;map&gt;#include &lt;string&gt;#include &lt;cstdio&gt;#include &lt;cstdlib&gt;#include &lt;queue&gt;#include &lt;vec原创 2018-03-18 17:01:12 · 154 阅读 · 0 评论 -
pat 甲级 1009 Product of Polynomials
和1002很像 嗯,所以又看了一下午才把题看懂 就是第一行的每一项都与第二行的每一项指数相加,系数相乘 然后再和1002一样指数相同的合并题目做起来很简单 第一遍做完,样例也顺利过了 提交10分,,, emmmm这次的0都有注意啊,, 输出格式也没错,,没啥能改的地方啊??? 网上的代码有的都和我一样啊就是数组名字不一样 难道是数组大小的事?1000-&amp;gt;...原创 2018-07-29 08:14:30 · 261 阅读 · 0 评论 -
pat 甲级 1011 World Cup Betting
简单题目,一次通过了 嘻嘻嘻 odd 几率注意保留取整问题猪: printf(“%.2lf”);可能会出现5舍6入的情况。关于测试数据37.98,可能由于编译器版本不同,在我编译器上也出现了37.975保留两位小数变成37.97的情况,5舍6入,此时最好的处理办法就是在结果上加上0.001.#include<iostream> #include<cmath&...原创 2018-07-29 10:46:13 · 205 阅读 · 0 评论 -
pat 甲级 1006 Sign In and Sign Out
string可以直接比较大小,不用建乱七八糟的数组啥的#include <cstdio>#include <iostream>#include <cstdlib>using namespace std;int n;string firstname, lastname, firsttime, lasttime;int main(){ ...原创 2018-07-26 10:31:46 · 144 阅读 · 0 评论 -
pat 甲级 1012 The Best Rank
有些复杂的排序,其实理清了还好 用结构体存数据 然后自定义比较函数 注意大小号问题,应该是想怎么个顺序来就用哪个,比如想从大到小就 ’ > ‘有几个思路处理不好的地方参考了下猪的代码1.排名名次问题, 1 1 3 3 5,这种 2.比较优先级问题,别考虑的太复杂 3.名次存储,最后比较时的问题,#include <cstdio>#include <i...原创 2018-07-29 16:07:57 · 129 阅读 · 0 评论 -
pat 甲级 1004 Counting Leaves
queue.empty() //为空则返回真;树的层序遍历 没用递归,,为什么我一直觉得只有用了递归才算遍历,,#include <cstdio>#include <iostream>#include <cstdlib>#include <vector>#include <algorithm>#include <...原创 2018-07-26 18:53:53 · 129 阅读 · 0 评论 -
pat 甲级 1008 Elevator
pat的编译器里 begin不可以作为变量名#include <cstdio>#include <iostream>#include <cstdlib>using namespace std;int n, b, sum;int main(){ cin >> n; for(int i=0; i<n; i+...原创 2018-07-27 17:17:37 · 179 阅读 · 0 评论 -
pat 甲级 1013 Battle Over Cities
看了别人的分析,是一个求连通分量的题 求出来连通分量后所需要加的边数是 sum - 1用了dfs 最后超时的地方测试了几次: 1. 把0 1 改成 true false 无影响 2. 把cout 改成 printf 无影响 3. 把 cin 改成 scanf 成功所以还是少用cin cout吧,,虽然挺方便的。。#include <cstdio>#includ...原创 2018-07-31 10:13:22 · 131 阅读 · 0 评论 -
pat 甲级 1027 Colors in Mars
简单题 但是自己总是做的麻烦 进化成别人的简单做法进制转换的地方自己出现了问题,去看一下do{ arr[l++] = n%d; n /= d; }while(n!=0);是这样没错,不过结果是倒着的,但是这道题这么做就麻烦了。#include &lt;cstdio&gt;#include &lt;iostream&gt;int a;using na...原创 2018-08-09 08:13:04 · 143 阅读 · 0 评论 -
pat 甲级 1028 List Sorting
结构体排序问题,解决了上次出现的不知道相等的怎么排的问题//在构造函数里排,不在外面弄bool my(stu a, stu b){ if(a.score == b.score) return a.num &lt; b.num; return a.score &lt; b.score;}多用scanf printf 所以不能用 string 就用char存名字 ...原创 2018-08-09 09:43:52 · 152 阅读 · 0 评论 -
pat 甲级 1019 General Palindromic Number
为啥甲级的简单题都会有几个让我很迷茫的卡点,,首先是注意输入0时输出 Yes 0然后就是不知道为什么会卡的点 正确代码写的确实很正确也很简单 但是按照我的来写,如果错应该也是超时的错啊,,为什么会是答案错误 两段代码的意思是一样的呀,, 还是要多多学习吧,,可能,,#include &lt;cstdio&gt;#include &lt;iostream&gt;using ...原创 2018-08-05 08:26:07 · 247 阅读 · 2 评论 -
pat 甲级 1020 Tree Traversals
新知识 根据后序中序求前序 用遍历学习了别人的代码#include &lt;cstdio&gt;using namespace std;int post[] = {3, 4, 2, 6, 5, 1};int in[] = {3, 2, 4, 1, 6, 5};void pre(int root, int start, int end) { if(start &gt; ...原创 2018-08-05 11:27:19 · 170 阅读 · 0 评论 -
pat 甲级 1021 Deepest Root
其实是自己没过去 理解了别人的代码感觉自己都明白了自己改来改去就不对 也没地方问也没法改 就先理解好样例代码吧复习set 自动去重 调用要设指针 (auto会报错)#inclide &lt;set&gt;set&lt;int&gt;::iterator it;for(it = s.begin(); it != s.end(); it++) printf("%d\...原创 2018-08-05 21:54:44 · 235 阅读 · 0 评论 -
pat 甲级 1002 A+B for Polynomials
快被自己蠢哭了的一道题o(╥﹏╥)o首先花了好久才看明白题(其实就是底数相同的幂数相加) 看明白了好像还挺简单,然后开始做,就用数组标记就可以了 提交后发现只得了15分发现系数为0这个地方没考虑 改来改去,还是不对啊然后翻翻别人的代码,看了半天 哦 题目里说了输出非零项改改改,,, 还不对 ?????看了看别人的输出,, 难道是要以浮点数的格式输出整数? 试一...原创 2018-07-28 11:31:40 · 95 阅读 · 0 评论 -
pat 甲级 1014 Waiting in Line
断断续续写了一天 逻辑能力还是不行啊,,搞不清楚这些变量之间的关联 参考了别人的代码有一个小点 不能用 rank做变量名,是和库函数重复的,会编译错误#include &lt;cstdio&gt;#include &lt;iostream&gt;#include &lt;queue&gt;using namespace std;struct rank{ int ...原创 2018-08-01 16:11:36 · 165 阅读 · 0 评论 -
pat 甲级 1022 Digital Library
啥都别说了 智障了看着输入输出觉得很复杂 其实解决了怎么存储,剩下的比较起来很简单 循环就可以了 没用别人那种精巧的方法 直接建结构体存储,没用到map知识点: vector用法; getline; C语言没办法对string进行输入输出,用cin cout比较好写完了一直不过,因为自己忘了输出要查询的信息#include &lt;cstdio&gt;#include...原创 2018-08-06 10:17:36 · 172 阅读 · 0 评论 -
pat 甲级 1015 Reversible Primes
不难 但是令我十分迷茫的一道题要注意理解好题意,进制翻转的意思是把这个数先转换成d进制,再在d进制中翻转,然后再转化成10进制,判断它是不是素数。复习判断素数知识点 注意 ‘ = ’ !!!int isprime(int a){ for(int i=2; i<=sqrt(a); i++){ if(a%i==0) return 0; } ...原创 2018-08-01 17:07:50 · 309 阅读 · 0 评论 -
pat 甲级 1023 Have Fun with Numbers
一次通过了 虽然是第一题简单些 没看别人代码,自己写的有些笨泪流满面#include &lt;cstdio&gt;#include &lt;iostream&gt;#include &lt;cstring&gt;using namespace std;char arr[22];int brr[22], cnt;int key1[10], key2[10];int m...原创 2018-08-06 20:07:42 · 111 阅读 · 0 评论 -
pat 甲级 知识积累
断断续续也做了30多个题了,不总结一下乱做也没效果,有一些还是要背一背的♦ 1002 有一个输出问题, 注意输出格式, 尽量多用scanf printf ,做到现在基本只有在用到string的时候只能cin cout 。♦ 开数组大小的时候要考虑全面,有些时候不通过或者显示段错误的话就把数组再开大点。。♦ 目前遇到的dijkstra题都还没去研究,,接下来这几天的目标就是继续刷题,然...原创 2018-08-14 19:30:04 · 501 阅读 · 3 评论 -
pat 甲级 1038 Recover the Smallest Number
大佬们的思路实在是太厉害了,短短几行。 自己只能想到排序那一步string真的是神奇的东西 string.erase();string.erase(m,n); //删除string中从第m开始的n个字符string.erase(n); //删除第n个位置上的字符string.erase(first,last); //删除两个迭代器之间的字符#include <cs...原创 2018-08-14 23:22:30 · 154 阅读 · 0 评论 -
pat 甲级 1024 Palindromic Number
字符串处理 使字符串s反转 字符在计算机里存储是ASC码形式#include &lt;algorithm&gt;reverse (s.begin(),s.end());#include &lt;cstdio&gt;#include &lt;iostream&gt;#include &lt;algorithm&gt;#include &lt;cs原创 2018-08-07 17:05:42 · 194 阅读 · 0 评论 -
pat 甲级 1029 Median
在pat没修改的时候好像sort或者nth_element 可以过 现在加了内存限制,好多代码都不行了 这个是第一版(不加内存限制好简单啊);学习一下nth_element (a,b,c); 在&lt;algortithm&gt;里#include &lt;cstdio&gt;#include &lt;iostream&gt;#include &lt;algorithm&原创 2018-08-12 14:28:47 · 252 阅读 · 0 评论 -
pat 甲级 1031 Hello World for U
好像一个天梯赛的题啊,, 当时好像就没做上 现在看,至少有了思路了 不是人家简约的那种 是一点一点试出来的 反正没超时嘛最后输出的时候捅咕了半天,笨死了#include <cstdio>#include <iostream>#include <cstring>using namespace std;string a;char ar...原创 2018-08-12 15:51:21 · 147 阅读 · 0 评论 -
pat 甲级 1032 Sharing
用while写会有一个一分的点不过,,,不知道为什么,,最后一个字母也测了,,想来想去可能是因为最后一个字母的地方会有问题吧,,,不清楚/*while(num[n1].out != -1){ num[n1].key = true; n1 = num[n1].out; } num[n1].key = true; while(...原创 2018-08-12 18:32:59 · 252 阅读 · 1 评论 -
pat 甲级 1036 Boys vs Girls
第二次提交通过 因为忘了不存在的不仅要在差值的地方输出NA,还要输出 Absent还是简单滴#include <cstdio>#include <iostream>#include <algorithm>using namespace std;int n;struct student{ string name; char ...原创 2018-08-12 21:39:03 · 142 阅读 · 0 评论 -
pat 甲级 1043 Is It a Binary Search Tree
关于树的题目 要在之后进行一下系统的学习 这个题题意不难,,方法其实,,看了之后很好理解 学习学习#include <cstdio>#include <iostream>#include <queue>using namespace std;queue<int> q;int arr[1100], n;int flag = 1...原创 2018-08-17 23:11:23 · 221 阅读 · 0 评论 -
pat 甲级 1041 Be Unique
我为什么可以这 么 笨 !! 明明一开始就想到了最简单的办法 还觉得自己想错了自找麻烦 啊啊啊远远的不达标↓自己想复杂导致最后两个点超时的代码#include <cstdio>#include <iostream>#include <vector>using namespace std;int n;int arr[110000];...原创 2018-08-15 18:21:26 · 254 阅读 · 0 评论 -
pat 甲级 1040 Longest Symmetric String
(刚开始没写对后来改对了) 很可惜,,自己差一点点,, 就一点点了,, 但是真的想不出来了,, 唉用的思路是一个一个试,然后试的过程中把当前最大的子串个数记下来,不断更新当循环里j = l时会有一个点超时 for(int i=0; i<l; i++){ for(int j=l; j>1; j--){ //这里 b =...原创 2018-08-15 23:02:53 · 149 阅读 · 0 评论 -
pat 甲级 1034 Head of a Gang
求图的连通分量变形题 看了别人还有很多用并查集的第一个问题是怎么存储 参考了别人,用map把字符和数字对应起来第二个问题怎么求 复习之前求连通分量的方法,有几个错误点 dfs循环,主函数循环时 (j=1) 可能对递归还是理解不到位,有死记硬背的嫌疑 接下来就是对连通分量的变形,需要什么变量在递归的过程中求出其中有三个点 1.求value值的时候 为什么不满足 brr[j...原创 2018-08-13 11:20:29 · 214 阅读 · 0 评论 -
pat 甲级 1035 Password
简单题,第一次读错题,忘了要先输出有几个改的 ↓忘了加计数的#include <cstdio>#include <iostream>#include <cstring>using namespace std;int n, sum;bool key = false;int main(){ scanf("%d",&n);...原创 2018-08-13 15:48:04 · 442 阅读 · 0 评论 -
pat 甲级 1025 PAT Ranking
其实思路都对了 处理的还是不好 没必要都在一个里面存然后排 为了解决一个麻烦而制造更多麻烦 这是第一版麻烦的夭折代码要记住排名处理的方法 if(arr[p].score == arr[p-1].score) arr[p].rank = arr[p-1].rank;else arr[p].rank = p+1;#include &lt;cstdio&gt;#include...原创 2018-08-08 21:00:34 · 208 阅读 · 0 评论 -
pat 甲级 1049 Counting Ones
数学规律题 分析出来的话代码就很好实现了 首先是从位数上找规律, 如果当前位是 0 那么说明它有过的1的个数是left * 位数,比如 120 ,个位是 0,个位上出现过的1 是 1,11,21……91, 101,111,12个。 如果当前位是 1那么它有过的1的个数是原有的 left * 位数 + 新的 right + 1,比如201,原有的是20个,加上新的1个,21个 如果当前位是...原创 2018-08-18 11:20:52 · 315 阅读 · 0 评论 -
pat 甲级 1048 Find Coins
自己第一次写的代码,有一个点超时#include <cstdio>#include <iostream>#include <algorithm>#include <vector>using namespace std;int a, b;vector<int> coin;int n, m;int main(){...原创 2018-08-18 12:24:42 · 252 阅读 · 0 评论 -
pat 甲级 1037 Magic Coupon
菜菜菜 扫了一眼别人的题解被贪心算法四个字吓住了 想了想还是做吧读了半天题,,其实要求的东西很简单,两个数列里相同个 数相乘和最大,他那些乱七八糟的美元啊优惠券啥的都是幌子存到vector里,排序,排完了负负相乘,正正相乘,判断条件就是循环的时候其中一个数不是负或者不是正了,就不乘了第一次写完没读进去,是vector没初始化的事。 别人的代码里用的是 vector<int&...原创 2018-08-13 21:07:35 · 164 阅读 · 0 评论 -
pat 甲级 1050 String Subtraction
首先思路是没错的 实现的方法不对 自己的想法是参照之前的哈希散列知识点,把每个字符都转化成数字,然后标记 写着写着发现字符型本来就是数字 果然,题解也是这样写的 很简便#include &lt;cstdio&gt;#include &lt;iostream&gt;#include &lt;vector&gt;using namespace std;string a, b;...原创 2018-08-18 15:49:49 · 142 阅读 · 0 评论