糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 【PAT甲级】冬季 PAT 甲级

【PAT甲级】冬季 PAT 甲级

时间:2022-03-30 20:42:46

相关推荐

【PAT甲级】冬季 PAT 甲级

冬季 PAT 甲级记录

第一次参加PAT,本来九月份报名的时候是打算到十二月份的时候把乙级的题库刷完,然后甲级的题库刷一半,结果因为各种各样的事情(主要是懒又没坚持0.0)这次直到考前乙级才刷完三分之二,甲级一题都没刷就来考试了,而且考前才得知原来我报名的考点是线上考点要自己准备环境,一看考试须知,周围2.5米内不得有人,考试中途不能上厕所,妈蛋我是六人寝啊,2.5米不得有人我要把我舍友都扔出去吗- -,我最喜欢做题喝水了,之前打一场比赛至少要去个三次厕所,感觉自己被针对了0.0然后焦头烂额准备环境(把自己的电脑和座位拿几件外套围起来,通知舍友不要发出声音。。)再加上最近沉迷刀剑真是想不白给都难,不废话了,上题目

这里写目录标

冬季 PAT 甲级记录1、斐波那契数列(模拟)2、substring(字符串匹配)3、文件树(模拟)4、化学方程?总结

1、斐波那契数列(模拟)

签到题,感觉是送分的

#include<bits/stdc++.h>using namespace std;long long t, s1 = 0, s2 = 1, n, ans1, ans2, ans;void fib(int a, int b){ans = s1 + s2;if(ans >= n){ans1 = ans;return;}else{s1 = s2;s2 = ans;ans2 = ans;fib(s1, s2);}}int main(){ios::sync_with_stdio(false);cin.tie(0);cin >> n;fib(s1, s2);if(abs(n - ans1) < abs(n - ans2)) cout << ans1;else cout << ans2;return 0;}

2、substring(字符串匹配)

这题以前训练的时候做过类似的,不过当时就没好好做,然后也一知半解,那个时候一起练习的大神同学说什么滑动窗口什么的,我现在也不太会就是了,当时考试的时候开了三个记录的数组,然后之间的逻辑关系就贼绕,特别复杂,其实暴力就能做出来了,当时环境也不太好发挥很差,改了很久没改好,这代码是第二天改的,不知道能不能过

#include<bits/stdc++.h>using namespace std;const int o = 1e4 + 5;int c1, c2, f1[o], f2[o], flag, sta;//f1记录所有子串中的字符在字符串中出现的下标//f2记录子串中每个字符出现的第一次在f1中的下标 int main(){string s1, s2;cin >> s1 >> s2;for(int i = 0; i < s1.size(); i++){if(s1[i] == s2[0]){sta = i;//第一个出现的位置,为后面n*m稍微优化一下 break;}}for(int i = 0; i < s2.size(); i++){flag = 0;for(int j = sta;j < s1.size(); j++){if(s1[j] == s2[i]){if(flag == 0){flag = 1;f2[c2++] = c1;}f1[c1++] = j;}}}int cc1 = 1, minn = 1e8, flag1, ans, p, flag2;if(c2 > 1){for(int i = 0; i < f2[1]; i++){flag1 = 0, cc1 = 1;for(int j = f2[cc1]; j < o; j++){if(flag2 == 1){flag2 = 0;j = f2[cc1];}if(f1[i] < f1[j]){//如果这个字符出现的下标在前一个字符之后,那就成功,每次只要记录后一个=种字符的第一个就行了 flag2 = 1;cc1++;if(cc1 == c2){//完成子串,那么记录长度和位置,ans为长度,p为在字符串中的下标 ans = f1[j] - f1[i] + 1;if(ans < minn){minn = ans;p = f1[i];}flag1 = 1;break;}}}if(flag1 == 1) continue;}string pp;pp = s1.substr(p, minn);cout << pp;}else cout << s2;return 0;}/*atpaaabpabttpcatpat*/

3、文件树(模拟)

这题看着挺复杂的,开了vector存路径,结果写完才发现根本没有vector的出场,真是离谱,然后细节修改修改提交,格式错误,懵逼,给的样例error在最后一行,所以我的error那一行没加换行, 结果我debug了半个小时才发现这个问题,服了,又特别想上厕所(我没喝水啊!)

#include<bits/stdc++.h>using namespace std;const int o = 1e5;int pre[o], vis[o], last[o];void find(int x) {if(pre[x] != -1) {find(pre[x]);printf("%04d", pre[x]);cout << "->";}return;}int main() {int n, a, c, m, x;string s, s1;vis[0] = 1;fill(pre, pre + 100000, -1);cin >> n;getchar();getline(cin, s1);for(int i = 1; i < n; i++) {c = 0;getline(cin, s);a = stoi(s);while(s[c] == ' ') c++;last[c] = a;pre[a] = last[c - 1];vis[a] = 1;}cin >> m;for(int i = 0; i < m; i++) {cin >> x;if(vis[x] == 1) {find(x);printf("%04d\n", x);} else {printf("Error: %04d is not found.\n", x);}}return 0;}

4、化学方程?

题目太长了,看不太懂,然后又憋得慌,我直接交卷去撤硕了,这题还是等我多刷点题库才看吧- -

总结

总的来说自己太菜,也没刷题库,虽然这次目的是试水(我就是奔着三题去的- -)但感觉这次应该难度不算大吧(不过我之前也没考过就是了),除了第四题应该很难前三题都挺简单的,只不过体验还是有点差,发挥也一般,寒假好好把题库给做了,希望疫情快点结束,线上考简直折磨,希望快快变回线下考,明年嗯冲一波PAT!!

如果觉得《【PAT甲级】冬季 PAT 甲级》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。