
pta 甲级
m714星云
渣渣
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
L2-1 特立独行的幸福 (25 分)
#include <bits/stdc++.h> using namespace std; int diedai(int x){//计算平方累加和 int d = 0; while(x){ d+= (x%10)*(x%10); x/=10; } return d; } int num[10010]; bool isprime(int x){ //判断素数 if(x==1) return false; for(int原创 2021-04-21 21:32:40 · 401 阅读 · 0 评论 -
L2-030 冰岛人 (25分)
题目 2018年世界杯,冰岛队因1:1平了强大的阿根廷队而一战成名。好事者发现冰岛人的名字后面似乎都有个“松”(son),于是有网友科普如下: 冰岛人沿用的是维京人古老的父系姓制,孩子的姓等于父亲的名加后缀,如果是儿子就加 sson,女儿则加 sdottir。因为冰岛人口较少,为避免近亲繁衍,本地人交往前先用个 App 查一下两人祖宗若干代有无联系。本题就请你实现这个 App 的功能。 输入格式: 输入首先在第一行给出一个正整数 N(1<N≤10 5 ),为当地人口数。随后 N 行,每行给出一原创 2020-11-08 21:36:06 · 523 阅读 · 0 评论 -
2017-L3-1 二叉搜索树的结构 (30分)
题目 二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉搜索树。(摘自百度百科) 给定一系列互不相等的整数,将它们顺次插入一棵初始为空的二叉搜索树,然后对结果树的结构进行描述。你需要能判断给定的描述是否正确。例如将{ 2 4 1 3 0 }插入后,得到一棵二叉搜索树,则陈述句如“2是树的根”、“1和4是兄弟结点”、“3和0在同一层上”(指自顶向下的深度相原创 2020-10-31 19:30:52 · 592 阅读 · 0 评论 -
PTA甲级 1002 A+B for Polynomials
题意 求A有序多项式+B有序多项式后的有序多项式,输入中前者是指数,后者是系数。 思路 双指针法 思想:用一个指针遍历a数组,一个指针遍历b数组。比较两者的指数大小。如果a当前指向的元素指数大的话,将此元素放入答案数组,同时a当前指针往后移动一个。同理对b进行同样的操作。如果a和b当前的指针相同,则将其系数相加(不为0)放入答案数组。 边界条件:可能会导致a或b提前遍历完,所以要将剩余的元素全部...原创 2019-12-31 21:16:45 · 291 阅读 · 0 评论 -
PTA甲级 1001 A+B Format
题意 给定a,b,求出a+b的和,然后每三位数字以逗号分隔,除非数少于三位。 思路 利用to_string 将数据转换为字符串,然后逆序每三位加逗号 代码 #include <bits/stdc++.h> using namespace std; int main(){ int a,b; cin>>a>>b; string s=to_st...原创 2019-12-31 20:44:30 · 265 阅读 · 0 评论 -
1119 Pre- and Post-order Traversals (30 分)
解题思路 检查每个节点是否有两个子结点 因为只有一个子结点的话,它既可以是左儿子也可以是右儿子。(前序和中序不能确定一颗唯一二叉树的原因。) 题目中如果是NO的话,随便选一个,(答案不唯一) code #include <bits/stdc++.h> using namespace std; vector<int> pre(30),post(30),in; int ju...原创 2019-11-27 21:01:16 · 138 阅读 · 0 评论 -
1014 Waiting in Line (30 分)
解题思路 先让n×mn\times mn×m个数进入分界线内,但要判断一下人数,有k<n×mk<n\times mk<n×m 和 k>=n×mk>=n\times mk>=n×m 两种情况 结构体存入三个数据: 队首出队时间 最后结束时间 一个队列 这样处理的话,后面就可以通过遍历找到每个窗口的队首处理时间,找到最小值,一个一个插入到对应的窗口中。 注意...原创 2019-11-27 16:50:09 · 135 阅读 · 0 评论 -
1080 Graduate Admission (30 分)
解题思路 题目条件第一条:先排序按成绩大小 题目条件第二条:按照指定的规则排序,总分相同比GE,GE相同排名相同 题目条件第三条:按照学生的排名进行录取,如果该学校满了,则跳去学生的第二志愿,依此下去 题目条件第四条:排名相同的且志愿相同的同时录取(可以记录每个学校的靠后的排名,如果后面排名相同就进行补录) 用set可以进行升序,记录学生数 code #include <bits/std...原创 2019-11-26 19:33:19 · 99 阅读 · 0 评论 -
1095 Cars on Campus (30 分)
解题思路 首先得找出in和out都匹配的车辆,不然在后面找有多少辆车在里面且pair是很麻烦的 先按车牌相同的筛选出来pair的停车和离开的时间 将其保存在car数组里面,并将car排序 通过car数组可以知道在当前车之前有多少辆车在里面,in记为1,out记为-1 比较该车与条件时间,可以知道车辆数 code #include <bits/stdc++.h> using nam...原创 2019-11-26 16:54:15 · 135 阅读 · 0 评论 -
1016 Phone Bills (25 分)
题意 不能直接输出姓名,因为如果你的账单不符合,你的名字是不会被打印出来的。 排序题 code #include <bits/stdc++.h> using namespace std; struct node{ string name; int month,day,hh,mm,status; int last; }; int p[25]; bool cmp...原创 2019-11-26 14:21:32 · 179 阅读 · 0 评论 -
1068 Find More Coins (30 分)
题意 状态方程: dp[j]=max(dp[j],dp[j−w[i]]+w[i])dp[j]=max(dp[j],dp[j-w[i]]+w[i])dp[j]=max(dp[j],dp[j−w[i]]+w[i]) 其中dp[j]dp[j]dp[j]表示不超过j的最大价格 我们只要知道最后dp[m]==mdp[m]==mdp[m]==m是否有此等式成立即可。 code #include <b...原创 2019-11-22 19:37:30 · 148 阅读 · 0 评论 -
1067 Sort with Swap(0, i) (25 分)
题意 贪心,题目要求用0去交换其它的位置,使得最后序列有序。 那么其实可以分为两种情况:0不在0位和0在0位。 一。如果0不在0位,我们就用0去交换应该在这个位置上的树 比如说 0 1 2 3 4 4 0 2 1 3 1位上应该是1,但却是0,于是我们就用0去换3位上的1 0 1 2 3 4 4 · 1 2 0 3 依次下去。。。。。 二。如果0在原位,就不...原创 2019-11-21 20:07:17 · 97 阅读 · 0 评论 -
1150 Travelling Salesman Problem (25 分)
题意 这道题其实跟哈密顿回路问题差不多。 是要找一个能遍历图中所有顶点的简单回路(即每个顶点只访问 1 次)最后因为是回路,1. 起点和终点是一致的,2. 其次用一个集合存放所有的结点,看集合里面的个数是否为n,3. 所有点都被访问且被访问一次就是输入的数据只能是n+1个结点。 最后 循环一遍给定的结点, 看一下前后向另两个结点是否有边,加权路径即可 code #include <bits/...原创 2019-11-21 19:17:12 · 91 阅读 · 0 评论 -
1122 Hamiltonian Cycle (25 分)
题意 是要找一个能遍历图中所有顶点的简单回路(即每个顶点只访问 1 次) 最后因为是回路,1. 起点和终点是一致的,2. 其次用一个集合存放所有的结点,看集合里面的个数是否为n,3. 所有点都被访问且被访问一次就是输入的数据只能是n+1个结点。 最后 循环一遍给定的结点, 看一下前后向另两个结点是否有边即可。 code #include <bits/stdc++.h> using na...原创 2019-11-20 17:03:42 · 658 阅读 · 1 评论 -
1053 Path of Equal Weight (30 分)
题意 先将每个结点的孩子按照权值大小进行降序排序,这样就满足题目中要求的从右往左顺序。 然后就是如果到了叶子节点且权值等于给定的数值,就打印路径。 主要是这三行代码 path.push_back(a[g[st][i]]); if(!vis[g[st][i]]) dfs(g[st][i],v+a[g[st][i]]); path.pop_back(); code #include <b...原创 2019-11-19 13:27:23 · 91 阅读 · 0 评论 -
1142 Maximal Clique (25 分)
题意 给定几个点,判断是否为极大团,即每两个顶点都有边连接。 判断给定的点是否两两都有边,将题目中的所给的测试顶点的所有邻接的点都加1,最后在这几个点循环看一下每个点入度是否等于k-1(顶点数减1),如果是则为团。 然后如果存在一个点,使得其不为极大团,则必有一个或多个不在给出的数据里面的点,其入度为k code #include <bits/stdc++.h> using nam...原创 2019-11-17 18:18:22 · 228 阅读 · 0 评论 -
1126 Eulerian Path (25 分)
题意 对于无向图来说: 是欧拉图,连通且所有节点的度为偶数 是半欧拉图,连通且只有两个节点的度为奇数 ????欧拉图???? code #include <bits/stdc++.h> using namespace std; vector<int> g[510],d(510,0); bool vis[510]; int n,m,u,v,sum=0,cnt=0; void dfs(...原创 2019-11-15 19:50:25 · 315 阅读 · 0 评论 -
1155 Heap Paths (30 分)
题意 判断最大堆,最小堆,不是堆。然后输出从根节点道叶子节点的路径 首先叶子节点没有左右孩子,所以其判断条件就是其2×leave+12\times leave+12×leave+1和2×leave2\times leave2×leave超过n 然后还要考虑到倒数第二层上有一个节点会只有一个孩子,在递归的时候要判断一下。 code #include <bits/stdc++.h> us...原创 2019-11-15 13:43:30 · 102 阅读 · 0 评论 -
1147 Heaps (30 分)
#include <bits/stdc++.h> using namespace std; int a[1010],m,n,d,fir=0; bool judge(int st,int d){ if(st>n) return true; if(d==1){ if(2*st<=n&&a[st]<a[2*st]) retur...原创 2019-11-15 12:45:30 · 145 阅读 · 0 评论 -
1098 Insertion or Heap Sort (25 分)
题意 找到两个排序中那个最容易分辨出来,明显是插入排序,先b数组扫一遍,遇到不是有序的位置停下来,从该位置与原数组比较,如果后半部分都相同就是插入排序,否则就是堆排序 然后堆排序可以就可以套用模版perdown函数就可以了。堆排序直接在b数组进行(将第一个元素与后面的元素比较,找到小于第一个的元素,从该位置perdown) code #include <bits/stdc++.h&g...原创 2019-11-14 17:16:18 · 356 阅读 · 0 评论 -
1130 Infix Expression
题意 注意到运算符出现在非根节点处,只要不是在根节点处就要加括号,用递归去做。注意如果是在第一个根节点不需要加括弧 code #include <bits/stdc++.h> using namespace std; struct node{ string s; int left,right; }tree[25]; int a[25],n,root=0; string...原创 2019-11-14 17:11:15 · 229 阅读 · 0 评论 -
1151 LCA in a Binary Tree (30 分)
题意 这种题目模版吧。。。 把它记住就可以了。。。用depth存储每个节点的高度, 用parent存储每个节点的父结点,根节点设置为-1. LCA int LCA(int u,int v){ if(parent[u]==-1) return u; if(parent[v]==-1) return v; while(depth[u]>depth[v]) u=parent...原创 2019-11-13 13:06:46 · 115 阅读 · 0 评论 -
1127 ZigZagging on a Tree (30 分)
题意 拿层序遍历做的(题目告诉我的),如果当前层为奇数层(从0开始算)则向右????扫,偶数层向左????扫。 这道题。。就很有必要说一下了 最后一个测试点一直过不去。。。因为一直以为结点就30,我的level数组也开成30了。 所以万一树退化成了线性表。。。?我的level index不是得最起码230−12^{30}-1230−1个空间吗。。所以数组开大点就过了 #include <bits/st...原创 2019-11-13 11:20:40 · 181 阅读 · 0 评论 -
1146 Topological Order (25 分)
题意 判断是否为拓扑排序,拓扑排序的算法是,给定一个有向无环图, 判断队首结点的入度是否为0即可 code #include <bits/stdc++.h> using namespace std; vector <int> d(10010,0),t(10010,0),g[10010]; int main(){ int n,m,x,y,k,fir=0; ci...原创 2019-11-13 10:21:19 · 154 阅读 · 0 评论 -
1143 Lowest Common Ancestor (30 分)
题意 找他的最近公共祖先结点。。听着名字就被糊弄过去了 其实这是道很简单的题,因为他是BST啊! 左边的树比根节点小,右边的树比根节点大,那么就是循环一下数组,看一下有没有满足比x结点大,比y结点小的这么一个点 或者(比x小,比y大) 主要最近在学LCA类的算法。。。就直接做了,完全没想到BST的特点。。。 对code2解法感兴趣的可以去????这里????看看 code 1 #include <bit...原创 2019-11-12 19:30:29 · 178 阅读 · 0 评论 -
1154 Vertex Coloring (25 分)
题目大意 就是相邻的结点不能有共同的颜色,统计花了几个颜色涂(set) 这道题暴力居然过去了。。。。 贴上一张可爱的图。。。 code #include <bits/stdc++.h> using namespace std; int main(){ int n,m,x,y,k; cin>>n>>m; vector<int&g...原创 2019-11-12 16:04:36 · 106 阅读 · 0 评论 -
1149 Dangerous Goods Packaging (25 分)
水题 领接表的方式存储每一个结点不相容的结点。然后hash看该物品有没有在该清单上出现 code #include <bits/stdc++.h> using namespace std; int main(){ int n,q,x,y,k; cin>>n>>q; vector <int> g[100000]; fo...原创 2019-11-12 15:26:12 · 314 阅读 · 0 评论 -
1145 Hashing - Average Search Time (25 分)
题目最后的搜索平均时间也是用正向的平方探测法去做的。 居然?hash[h]==x||hash[x]==0 写错了,浪费生命啊/// code #include <bits/stdc++.h> using namespace std; bool judge(int k){ if(k==1) return false; for(int i=2;i*i<=k;i+...原创 2019-11-11 19:37:45 · 113 阅读 · 0 评论 -
1114 Family Property (25 分)
这道题写完看了一下网上的,普遍用的是并查集 我用dfs直接当图来写的,,,,过些天用并查集再写一遍 code #include <bits/stdc++.h> using namespace std; struct node{ int num=0; int k=0; }num[10100]; struct node1{ int id,p,f,m; }; vect...原创 2019-11-11 13:42:29 · 159 阅读 · 0 评论 -
1082 Read Number in Chinese (25 分)
??? 查阅文献得: 大数的读法:从高位读起,一级一级往下读;读万级的数时,先按照个级的数的读法来读,然后在后面加上一个“万”字;每级末尾的0都不读,如果其他数位有一个或连续几个0,都只读一个“零”。 代码太臭了,太烦了。。。过些天回头写的时候再改一下。。。吐血啊????》〉》《〈《〈 code #include <iostream> using namespace std; stri...原创 2019-11-08 13:23:40 · 328 阅读 · 0 评论 -
1040 Longest Symmetric String (25 分)(DP)
problem Given a string, you are supposed to output the length of the longest symmetric sub-string. For example, given Is PAT&TAP symmetric?, the longest symmetric sub-string is s PAT&TAP s, he...原创 2019-10-20 14:13:54 · 127 阅读 · 0 评论