PAT
QQN1996
这个作者很懒,什么都没留下…
展开
-
1108 Finding Average(20 分)【字符串模拟题】
20分的水题,我却写了40多分钟,严重怀疑自己思路错了。A了以后看了别人的解题报告,才发现原来用两个函数就可以很轻松的解决了。。还是要多掌握一些知识呀。。两个函数:sscanf() – 从一个字符串中读进与指定格式相符的数据sprintf() – 字符串格式化命令,主要功能是把格式化的数据写入某个字符串中 别人AC的简单代码:#include <string.h>...原创 2018-09-04 16:33:19 · 393 阅读 · 0 评论 -
1007 Maximum Subsequence Sum(25 分)【最大连续子序列和】
题意:求最大连续子序列和并记录该序列的头尾元素#include <bits/stdc++.h>using namespace std;int N;int main(){ cin>>N; vector<int> v(N); int l=0,r=N-1,sum=-1,temp=0,tl=0; for(int i=0;...原创 2018-08-30 10:46:41 · 926 阅读 · 0 评论 -
1004 Counting Leaves(30 分)【dfs/bfs】
题意:给你一个家谱树,找到没有孩子的人,即寻找每层的叶子结点数方法一:用dfs。采用vector数组作为树的存储结构,将树结点逐一输入到vector 中,每一个元素存储了该结点的子孩子信息,自动向下探索子孩子,直到vector[i].size()==0表明该结点的子孩子为零,即叶子结点。 #include <bits/stdc++.h>using namespace std...原创 2018-08-30 10:42:29 · 196 阅读 · 0 评论 -
1143 Lowest Common Ancestor(30 分)【最近公共祖先】
二叉搜索树的建树和寻找最近公共祖先(题目给出了BST的前序遍历,而前序遍历升序排列就是BST的中序遍历了)#include <bits/stdc++.h>using namespace std;typedef struct node *Node;typedef struct node{ int val; Node l,r;}node;Node T;...原创 2018-08-30 10:36:00 · 259 阅读 · 0 评论 -
1146 Topological Order(25 分)【拓扑排序】
拓扑排序的步骤: 由AOV网构造拓扑序列的拓扑排序算法主要是循环执行以下两步,直到不存在入度为0的顶点为止。 【把顶点表示活动、边表示活动间先后关系的有向图称做顶点活动网,简称AOV网。】(1) 选择一个入度为0的顶点并输出之; (2) 从网中删除此顶点及所有出边。*循环结束后,若输出的顶点数小于网中的顶点数,则输出“有回路”信息,否则输出的顶点序列就是一种拓扑序列。 #inc...原创 2018-08-30 10:29:00 · 260 阅读 · 0 评论 -
1003 Emergency(25 分)【dfs/dijsktra】
题意:一张图,已知起点终点,计算起点到终点的所有最短路径,每个点上有一个数,代表这个点上的搜救队的数量,要求输出这些最短路径中你能召集到的最大的搜救队的数量。方法一:dfs#include <bits/stdc++.h>using namespace std;#define INF 0x7FFFFFint n,m,st,en;int map[501][501]...原创 2018-08-30 10:19:06 · 314 阅读 · 0 评论 -
1118 Birds in Forest(25 分)【并查集】
题意:同一张图中的bird在同一棵tree上,问一共有几棵tree,并判断任意两只bird是否在同一棵tree上。#include <bits/stdc++.h>using namespace std;#define INF 0x7FFFFFint fa[10005];void Init(){ for(int i=1;i<10005;i++) ...原创 2018-09-04 19:33:23 · 309 阅读 · 0 评论 -
1126 Eulerian Path(25 分)【并查集/dfs】
题意:如果一个连通图的所有结点的度都是偶数,那么它就是Eulerian,如果除了两个结点的度是奇数其他都是偶数,那么它就是Semi-Eulerian,否则就是Non-Eulerian (欧拉回路:图G的一个回路,如果恰通过图G的每一条边,则该回路称为欧拉回路,具有欧拉回路的图称为欧拉图。欧拉图:就是从图上的一点出发,经过所有边且只能经过一次,最终回到起点的路径。欧拉通路:即可以不回...原创 2018-09-04 19:31:27 · 214 阅读 · 0 评论 -
L2-013 红色警报(25 分)【并查集】
并查集:判断无向图连通分量个数(或判断无向图中任何两个顶点是否连通)有一点要注意:如果一个结点被占领后,现有的连通分量个数=原连通分量个数 或者 现有的连通分量个数=原连通分量个数+1,都是说明去掉当前结点是无影响的int fa[505];int n,m;int visit[505];struct node{ int u,v;}e[5005];int Find(i...原创 2018-09-04 19:27:32 · 479 阅读 · 0 评论 -
1115 Counting Nodes in a BST(30 分)【二叉搜索树】
计算一颗二叉搜索树最底两层的节点数,并且求和。首先根据输入的数值建立二叉搜索树。然后用dfs/bfs的方法计算最后最底两层的节点数,最后按照题目要求输出答案。 dfs:#include <bits/stdc++.h>using namespace std;#define INF 0x7FFFFFint n;struct node{ int dat...原创 2018-09-04 19:22:50 · 288 阅读 · 1 评论 -
1138 Postorder Traversal(25 分)【树的遍历】
题意:已知前序遍历和中序遍历,输出后序遍历//超时的时候可以试试将cin、cout换成scanf、printf#include <bits/stdc++.h>using namespace std;struct node{ int data; struct node *lchild,*rchild;};int n;int pre[50005],...原创 2018-09-04 19:17:27 · 290 阅读 · 0 评论 -
1127 ZigZagging on a Tree(30 分)【树的遍历】
题意:已知中序遍历和后序遍历,建树,输出层序遍历,输出规则为:从左到右,再从右到左,交替输出#include <bits/stdc++.h>using namespace std;#define INF 0x7FFFFFint n;int in[31],po[31];typedef struct node{ int val; struct node...原创 2018-09-04 19:12:24 · 642 阅读 · 0 评论 -
1109 Group Photo(25 分)【模拟题】
模拟题题意:排序,n个人排成k排,多余的全部放在最后一排。高的要在矮的后面,由于是面向我们的,所以反过来,最高的第一排输出。对于每一排,最高的在中间,然后从高到矮,依次先排在左边,然后排在右边(就像一座山)。高度相同的,按字典序从小到大排。经常写着写着开始怀疑自己,然后思路越来越乱,其实要相信最开始时候的思路是正确的。#include <bits/stdc++.h>us...原创 2018-09-04 19:06:33 · 358 阅读 · 0 评论 -
1020 Tree Traversals(25 分)【树的遍历】
题意:已知后序遍历和中序遍历,构造树,然后输出层序遍历(用bfs)#include <bits/stdc++.h>using namespace std;const int maxn=35;int n;int post[maxn];int in[maxn];typedef struct node{ int val; struct node *lchi...原创 2018-08-30 10:57:01 · 274 阅读 · 0 评论