
PAT
QQN1996
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1108 Finding Average(20 分)【字符串模拟题】
20分的水题,我却写了40多分钟,严重怀疑自己思路错了。A了以后看了别人的解题报告,才发现原来用两个函数就可以很轻松的解决了。。还是要多掌握一些知识呀。。 两个函数: sscanf() – 从一个字符串中读进与指定格式相符的数据 sprintf() – 字符串格式化命令,主要功能是把格式化的数据写入某个字符串中 别人AC的简单代码: #include <string.h>...原创 2018-09-04 16:33:19 · 427 阅读 · 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 · 964 阅读 · 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 · 229 阅读 · 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 · 300 阅读 · 0 评论 -
1146 Topological Order(25 分)【拓扑排序】
拓扑排序的步骤: 由AOV网构造拓扑序列的拓扑排序算法主要是循环执行以下两步,直到不存在入度为0的顶点为止。 【把顶点表示活动、边表示活动间先后关系的有向图称做顶点活动网,简称AOV网。】 (1) 选择一个入度为0的顶点并输出之; (2) 从网中删除此顶点及所有出边。 *循环结束后,若输出的顶点数小于网中的顶点数,则输出“有回路”信息,否则输出的顶点序列就是一种拓扑序列。 #inc...原创 2018-08-30 10:29:00 · 297 阅读 · 0 评论 -
1003 Emergency(25 分)【dfs/dijsktra】
题意:一张图,已知起点终点,计算起点到终点的所有最短路径,每个点上有一个数,代表这个点上的搜救队的数量,要求输出这些最短路径中你能召集到的最大的搜救队的数量。 方法一:dfs #include <bits/stdc++.h> using namespace std; #define INF 0x7FFFFF int n,m,st,en; int map[501][501]...原创 2018-08-30 10:19:06 · 376 阅读 · 0 评论 -
1118 Birds in Forest(25 分)【并查集】
题意:同一张图中的bird在同一棵tree上,问一共有几棵tree,并判断任意两只bird是否在同一棵tree上。 #include <bits/stdc++.h> using namespace std; #define INF 0x7FFFFF int fa[10005]; void Init() { for(int i=1;i<10005;i++) ...原创 2018-09-04 19:33:23 · 388 阅读 · 0 评论 -
1126 Eulerian Path(25 分)【并查集/dfs】
题意:如果一个连通图的所有结点的度都是偶数,那么它就是Eulerian,如果除了两个结点的度是奇数其他都是偶数,那么它就是Semi-Eulerian,否则就是Non-Eulerian (欧拉回路:图G的一个回路,如果恰通过图G的每一条边,则该回路称为欧拉回路,具有欧拉回路的图称为欧拉图。 欧拉图:就是从图上的一点出发,经过所有边且只能经过一次,最终回到起点的路径。 欧拉通路:即可以不回...原创 2018-09-04 19:31:27 · 262 阅读 · 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 · 521 阅读 · 0 评论 -
1115 Counting Nodes in a BST(30 分)【二叉搜索树】
计算一颗二叉搜索树最底两层的节点数,并且求和。 首先根据输入的数值建立二叉搜索树。然后用dfs/bfs的方法计算最后最底两层的节点数,最后按照题目要求输出答案。 dfs: #include <bits/stdc++.h> using namespace std; #define INF 0x7FFFFF int n; struct node { int dat...原创 2018-09-04 19:22:50 · 343 阅读 · 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 · 323 阅读 · 0 评论 -
1127 ZigZagging on a Tree(30 分)【树的遍历】
题意:已知中序遍历和后序遍历,建树,输出层序遍历,输出规则为:从左到右,再从右到左,交替输出 #include <bits/stdc++.h> using namespace std; #define INF 0x7FFFFF int n; int in[31],po[31]; typedef struct node { int val; struct node...原创 2018-09-04 19:12:24 · 693 阅读 · 0 评论 -
1109 Group Photo(25 分)【模拟题】
模拟题 题意:排序,n个人排成k排,多余的全部放在最后一排。高的要在矮的后面,由于是面向我们的,所以反过来,最高的第一排输出。对于每一排,最高的在中间,然后从高到矮,依次先排在左边,然后排在右边(就像一座山)。高度相同的,按字典序从小到大排。 经常写着写着开始怀疑自己,然后思路越来越乱,其实要相信最开始时候的思路是正确的。 #include <bits/stdc++.h> us...原创 2018-09-04 19:06:33 · 400 阅读 · 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 · 317 阅读 · 0 评论