GPLT
文章平均质量分 55
团体程序设计天梯赛做题记录
柃歌
夏天的海边有冰淇淋口味的海风
展开
-
PTA L3-028 森森旅游(Dijkstra)
【题目描述】好久没出去旅游啦!森森决定去Z省旅游一下。Z省有nnn座城市(从1∼n1\sim n1∼n编号)以及mmm条连接两座城市的有向旅行线路(例如自驾、长途汽车、火车、飞机、轮船等),每次经过一条旅行线路时都需要支付该线路的费用(但这个收费标准可能不止一种,例如车票跟机票一般不是一个价格)。Z省为了鼓励大家在省内多逛逛,推出了旅游金计划:在iii号城市可以用111元现金兑换aia_iai元旅游金(只要现金足够,可以无限次兑换)。城市间的交通即可以使用现金支付路费,也可以用旅游金支付。具体原创 2022-03-30 17:20:36 · 1014 阅读 · 0 评论 -
PTA 校选拔 7-10 宇航员的寻宝图(BFS)
【题目描述】宇航员为了能够到达宇宙飞船发射场,必须拥有足够的晶体,以获得能量。但是他们获得晶体并不容易,晶体被隐藏在某个地方。为了帮助宇航员得到晶体,现在有一张藏宝图,宇航员可以根据藏宝图寻找晶体。藏宝图由三种符号组成:'⋅'、'#'、'$'。符号'⋅'表示该位置是空的,宇航员可以通过;符号'#'表示该位置有石头阻挡,宇航员无法通过;符号'$'表示该位置有111个晶体,宇航员可以得到晶体并通过。藏宝图外面的位置都是空的,可以自由通行。宇航员可以上下左右移动,但不能以一定角度移动。首先,宇航原创 2021-12-19 11:04:08 · 370 阅读 · 0 评论 -
PTA 校选拔 7-14 羽毛球比赛(拓扑排序)
【题目描述】宇航员训练基地要举行羽毛球赛,共有NNN名队员参加比赛,他们的编号分别为1,2,3,…,N1,2,3,\dots,N1,2,3,…,N,宇航员王明是比赛的总裁判,但是由于电脑故障,比赛排名没有了,幸运的是王明保留有各场比赛的输赢情况,其中,(Pi,Pj)(P_i,P_j)(Pi,Pj)表示PiP_iPi队员赢了PjP_jPj队员,现在请你帮王明计算出羽毛球赛的排名。由于排名情况不唯一,编号小的队员排名在前。【输入格式】第一行输入两个整数NNN和MMM,其中N(1≤N≤500)N(1原创 2021-12-19 10:32:45 · 496 阅读 · 0 评论 -
PTA L2-039 清点代码库(STL)
4.18刚比完了中国高校计算机大赛-团体程序设计天梯赛,本蒟蒻第一次参加GPLT,差9分二等,啊啊啊我好菜(QAQ),应该再摸一题L3的然后接下来有时间的话挑几题发发思路和代码(有的代码参考了y总的解法)【问题描述】首先假设两个功能模块如果接受同样的输入,总是给出同样的输出,则它们就是功能重复的;其次我们把每个模块的输出都简化为一个整数(在int范围内)。于是我们可以设计一系列输入,检查所有功能模块的对应输出,从而查出功能重复的代码。你的任务就是设计并实现这个简化问题的解决方案。【输入格式】输原创 2021-05-06 17:03:45 · 1811 阅读 · 3 评论 -
PTA 校选拔L3-1 求序列数量(DFS)
题目描述:代码如下://第一种解法#include<bits/stdc++.h>using namespace std;const int MAX_M = 1005;const int MOD = 10000;int mem[MAX_M][MAX_M];int DFS(int pre, int cur){ if (cur <= 0) return 0; if (mem[pre][cur] != 0) return mem[pre][cur]; ret原创 2021-03-14 08:57:45 · 143 阅读 · 0 评论 -
PTA L2-013 红色警报(并查集)
题目描述:并查集基础题,具体思路备注在代码内,代码如下:#include<bits/stdc++.h>using namespace std;const int MAX_N = 505;const int MAX_M = 5005;int pre[MAX_N]; //每个城市的“上级”int vis[MAX_N]; //标记是否被攻占struct Road{ int x, y; //道路连接的两个城市}road[MAX_M];void init(int n原创 2021-03-14 08:50:53 · 237 阅读 · 0 评论 -
PTA L2-011 玩转二叉树(递归建树)
题目描述:此题为已知前序遍历+中序遍历还原二叉树,与L2-006基本一样,具体思路可转至下方链接,本题不再讲解思路PTA L2-006 树的遍历(递归建树)代码如下:#include<bits/stdc++.h>using namespace std;const int MAX_N = 10000;int preOrder[MAX_N], inOrder[MAX_N];int levelOrder[MAX_N], levelOrderMirror[MAX_N];void原创 2021-03-14 08:44:04 · 222 阅读 · 0 评论 -
PTA L2-006 树的遍历(递归建树)
题目如下:首先来看看已知前序+中序和已知后序+中序递归构建整棵树的思路代码如下:#include<bits/stdc++.h>using namespace std;const int MAX_N = 5000;int inOrder[MAX_N], postOrder[MAX_N], levelOrder[MAX_N];//递归建树,index表示当前的根结点在二叉树层序遍历中所对应的下标(从1开始),n表示该子树中结点的数量//寻找根结点在中序遍历中的位置k以区分原创 2021-03-14 08:35:39 · 192 阅读 · 0 评论