题目及满分代码下载戳这里

A The Closest Fibonacci Number

  热身题,预先把所有斐波那契数求出来。

#include<iostream>
#include<vector>using namespace std;
vector<int> nums;void get() {int tmp;for (int i = 2;; i++) {tmp = nums[i - 2] + nums[i - 1];if (tmp > 1e9)break;nums.push_back(tmp);}
}int main() {int n;nums.push_back(0);nums.push_back(1);get();cin >> n;int i = 0;//直到大于等于该数字while (nums[i] < n)i++;if (nums[i] == n)cout << n;else {if (n - nums[i - 1] <= nums[i] - n)cout << nums[i - 1];elsecout << nums[i];}return 0;
}

B Subsequence in Substring

  字符串题,这题暴力竟然也过了(认为要dp)。

#include<iostream>
#include<string>using namespace std;int main() {int len = 100000;string s, sub, ans;cin >> s >> sub;//枚举左端点for (int i = 0; i + sub.length() <= s.length(); i++) {int pos = 0, j = i;for (; j < s.length() && pos < sub.length(); j++) {if (s[j] == sub[pos])++pos;}//确定右端点if (pos == sub.length()) {if (j - i < len) {len = j - i;ans = s.substr(i, j - i);}}}cout << ans;return 0;
}

C File Path

  非 常规题,需要记录pre前驱指针,如果该文件和前一个文件平级,那么该文件的pre就是前一个文件的pre,如果该文件比前一个文件还深,则该文件pre就是前一个文件,如果该文件比前一个文件浅,则根据空格数迭代pre,找到规律后AC。

#include<cstdio>
#include<string>
#include<iostream>using namespace std;
const int MAXN = 10010;
int pre[MAXN];
int n, m;void dfs(int tt) {if (pre[tt] != -2)dfs(pre[tt]);if (tt == 0)printf("0000");elseprintf("->%04d", tt);
}int main() {string s;int tt;scanf("%d", &n);getchar();for (int i = 0; i < MAXN; i++)pre[i] = -1;//pre为-1代表没有这个文件,-2代表是根节点pre[0] = -2;int post = 0, bef = 0;for (int i = 0; i < n; i++) {getline(cin, s);int cur = stoi(s);if (i == 0)continue;//记录空格数int j = 0;while (s[j] == ' ')++j;//多一个空格,是上一个文件的子文件if (j == post + 1)pre[cur] = bef;else {int tmp = bef;//根据空格数迭代prefor (int k = 0; k <= post - j; k++)tmp = pre[tmp];pre[cur] = tmp;}bef = cur;post = j;}scanf("%d", &m);while (m--) {scanf("%d", &tt);if (pre[tt] == -1)printf("Error: %d is not found.", tt);elsedfs(tt);if (m)cout << endl;}return 0;
}

D Chemical Equation

  复杂的一道题,DFS回溯+映射,G[n]存储每个产物可选的方案,需要记录方案的字符串便于输出并且记录方案用到的原料,其中需要映射。满分代码如下:(应该有简单解法,不然给的三个提示也不会没用到)。

#include<iostream>
#include<cstdio>
#include<vector>
#include<string>
#include<algorithm>using namespace std;
const int MAXN = 110;
//是否使用过了
bool vis[MAXN], ori[MAXN];
vector<int> G[MAXN];
//每个方案
int pos;
vector<int> fangan[MAXN];
int n, m, k;
//产物 原料
int pro[MAXN];
string fs[MAXN];//按照顺序排序
bool cmp(int a, int b) {for (int i = 0;; i++)if (fangan[a][i] != fangan[b][i])return fangan[a] < fangan[b];
}bool dfs(int lev, vector<string> &path) {if (lev == m) {for (int i = 0; i < path.size(); i++) {if (i)cout << endl;cout << path[i];}return true;}for (int i = 0; i < G[pro[lev]].size(); i++) {bool op = true;for (int j = 0; j < fangan[G[pro[lev]][i]].size(); j++)if (vis[fangan[G[pro[lev]][i]][j]]) {op = false;break;}//方案不合法if (!op)continue;for (int j = 0; j < fangan[G[pro[lev]][i]].size(); j++)vis[fangan[G[pro[lev]][i]][j]] = true;//回溯path.push_back(fs[G[pro[lev]][i]]);if (dfs(lev + 1, path))return true;for (int j = 0; j < fangan[G[pro[lev]][i]].size(); j++)vis[fangan[G[pro[lev]][i]][j]] = false;path.pop_back();}return false;
}int main() {string s;int a;cin >> n;for (int i = 0; i < n; i++) {cin >> a;ori[a] = true;}cin >> m;for (int i = 0; i < m; i++) {cin >> pro[i];//自身可以成为方案if (ori[pro[i]]) {string ss;if (pro[i] < 10)ss = "0" + to_string(pro[i]) + " -> " + "0" + to_string(pro[i]);elsess = to_string(pro[i]) + " -> " + to_string(pro[i]);fs[pos] = ss;G[pro[i]].push_back(pos);fangan[pos++] = vector<int>({pro[i]});}}cin >> k;getchar();while (k--) {vector<int> tmp;getline(cin, s);for (int i = 0; i < s.length(); i = i + 5) {//空格代表这是化学式右边的产物,自己看看规律if (s[i] == ' ') {//产物a = stoi(s.substr(i + 1, 2));//映射字符串fs[pos] = s;G[a].push_back(pos);//映射数字fangan[pos++] = tmp;break;}int cur = stoi(s.substr(i, 2));//原料没有这个元素if (!ori[cur])break;tmp.push_back(cur);}}//根据要求的顺序排序for (int i = 0; i < m; i++)sort(G[pro[i]].begin(), G[pro[i]].end(), cmp);vector<string> path;//dfs求解dfs(0, path);return 0;
}

PS.冬季果然简单一点,满分好开心,冲冲冲。

2020PAT甲级冬季满分题解相关推荐

  1. 2022PAT甲级冬季满分题解

    新人求点赞(^_^) A-1 Reduction of Proper Fractions A Proper Fraction(真分数)is a fraction where the numerator ...

  2. CCF-CSP 201809-2买菜 满分题解

    CCF-CSP 201809-2买菜 满分题解 题目链接:CCF-CSP 201809-2买菜 思路: 1.此题主要看小H和小W两个人的时间段重合的长度. 2.设置一个数组作为时间轴,若小H和小W 的 ...

  3. CCF 201912-5 魔数 满分题解

    CCF 201912-5 魔数 满分题解 前缀知识 快速乘算法 可以计算两个大数在模m下的乘积而不会溢出 inline ull quickMul(ull a, ull b, ull mod) {a % ...

  4. CCF- CSP 202209-1如此编码 按部就班 满分题解

    CCF- CSP 202209-1如此编码 按部就班 满分题解 题目链接:202209-1如此编码 思路: 按照题目要求,定义数组a[N],b[N],c[N]; 初始化c[0]=1,边输入a边初始化c ...

  5. CCF- CSP 201912-2回收站选址 巧用STL实现O(n)时间复杂度 满分题解

    CCF- CSP 201912-2回收站选址 巧用STL实现O(n)时间复杂度 满分题解 题目链接:201912-2回收站选址 思路: 坐标最大可达到109,采用long long 类型,n最大到10 ...

  6. CCF-CSP 202112-3登机牌条码 解题思路+满分题解+详细注释

    CCF-CSP 202112-3登机牌条码 解题思路+满分题解+详细注释 题目链接:202112-3登机牌条码 思路: 第一步:按照题目顺序进行处理,即首先处理字符串,将对应的字符串转换成相应的数字编 ...

  7. CCF-CSP真题《202209-1 如此编码》思路+python满分题解

    想查看其他题的真题及题解的同学可以前往查看:CCF-CSP真题附题解大全 试题编号: 202209-1 试题名称: 如此编码 时间限制: 1.0s 内存限制: 512.0MB 问题描述: 题目背景 某 ...

  8. CCF-CSP 201903-2二十四点 三种方法 满分题解 结尾附惊天方法

    CCF-CSP 201903-2二十四点 三种方法 满分题解 结尾附惊天方法 题目链接:CCF-CSP 201903-2二十四点 方法一思路: 1.通读题意,发现该表达式仅由4个数字和3个四则运算组成 ...

  9. CCF-CSP 201812-1小明上学 简单思路 满分题解

    CCF-CSP 201812-1小明上学 简单思路 满分题解 题目链接:CCF-CSP 201812-1小明上学 思路: 1.红绿灯的变化顺序为红->绿->黄. 2.根据小明到达路口时红绿 ...

最新文章

  1. mysql模糊查询的优化方法--亲自实践
  2. python基础知识整理-Python 重点知识整理(基于Python学习手册第四版)
  3. 应该了解的Openstack命令
  4. 实用ExtJS教程100例-002:MessageBox的三种用法
  5. mysql server uuids_master and slave have equal MySQL server UUIDs 解决方法
  6. AjaxJson笔记(1)
  7. SAP ABAP Netweaver Note download debug
  8. oracle两个约束,Oracle中的约束介绍(2)
  9. WORD如何缩小编号与文本之间的距离?
  10. Python使用matplotlib可视化模拟学生成绩饼图
  11. vivado使用方法
  12. 阻抗匹配 及 SI9000 使用
  13. 通用型CRC校验算法
  14. Android 9 禁用按住电源键+音量加键进入工厂测试(recovery模式)功能
  15. 彻底关闭Chrome浏览器自动更新
  16. Mysql从入门到入魔——6. 表联结、组合查询
  17. python中的header_python中header是什么意思
  18. spinningup环境搭建
  19. ubuntu换源 树莓派
  20. lua系统学习02-变量

热门文章

  1. install4j打包jar
  2. HTML5前端开发实战02-旅游网页面设计
  3. LaTeX非主流技巧集锦
  4. 卡西欧计算机开机键,卡西欧手表怎么开机及四个键功能介绍
  5. 解决ImportError: /home/xxx/Software/anaconda3/lib/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found报错
  6. 论文翻译——SONG FROM PI: A MUSICALLY PLAUSIBLE NETWORKFOR POP MUSIC GENERATION
  7. CorelDRAW2022直接升级版 订阅版功能提升
  8. 纯js实现京东购物鼠标放大案例
  9. 系统分析选择题_来源于中国大学MOOC
  10. 微信小程序在线考试系统 毕业设计(5)答题卡