自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 pat 甲级1154 Vertex Coloring (25分)

文章目录pat 甲级1154 Vertex Coloring (25分) pat 甲级1154 Vertex Coloring (25分) 代码:(水题,不分析了哈:) #include <iostream> #include <vector> #include <set> using namespace std; struct edge { int vertex1,vertex2; }temp; vector<edge> g; int main()

2020-09-03 14:43:34 239 1

原创 pat甲级 1134 Vertex Cover (25分)

文章目录pat甲级 1134 Vertex Cover (25分)1.分析2.代码 pat甲级 1134 Vertex Cover (25分) 1.分析 note:只需要明白两点,(1)题目第一句话: A vertex cover of a graph is a set of vertices such that each edge of the graph is incident to at least one vertex of the set. 什么意思。 (2)能否想到给边编号存储,不用邻接矩阵不用

2020-09-03 00:22:33 213

原创 pat甲级1133 1133 Splitting A Linked List (25分)

文章目录pat甲级1133 1133 Splitting A Linked List (25分)1. 20分代码(最后一个点代码)2.正确代码3.总结 pat甲级1133 1133 Splitting A Linked List (25分) 1. 20分代码(最后一个点代码) #include <iostream> #include <vector> #include <unordered_map> using namespace std; struct node {

2020-09-02 22:31:11 212

原创 pat甲级1137 Final Grading (25分)

文章目录pat甲级1137 Final Grading (25分) pat甲级1137 Final Grading (25分) note: 题目很容易,但要写的紧凑简洁需要斟酌,还有就是细节:final grade G 是四舍五入,合格有证书的学生才进入排序输出,不是全排 代码:不到40行:) #include <iostream> #include <iostream> #include <unordered_map> #include <algorithm&gt

2020-09-02 15:50:01 266 1

原创 set,merge函数

#include <algorithm> #include <set> //集合的几种函数,要求集合a,b从小到大有序,inserter创建一个insert迭代器,因此若是set容器就有去重功能,同理,对vector就用back_inserter创建push_back迭代器,不去重,对于数组只需写c.begin(); //vector容器有 //并集 set_union(a.begin(),a.end(),b.begin(),b.end(),inserter(c,c.begin())

2020-09-02 08:53:24 1214

原创 pat甲级 1129 Recommendation System (25分)

文章目录pat甲级 1129 Recommendation System (25分)代码 pat甲级 1129 Recommendation System (25分) note:这道题本身不难,任务简单,就是在线查询排序;但难点在对STL的运用上 ,首先选择合理的容器有两个:map和set,map增删查改更易,重构compare函数或重载操作符很难实现排序;set反之;但增删查改复杂一点容易解决,故只有可选。其次,就是运算符重载或compare函数重写,没有学过的同学可能很困难,学过了就很简单 代码 #in

2020-09-01 21:03:37 217

原创 pat甲级 1141 PAT Ranking of Institutions (25分)

文章目录1.错误代码1.1测试结果 pat甲级 1141 PAT Ranking of Institutions (25分) 1.错误代码 #include <iostream> #include <cctype> #include <unordered_map> #include <vector> #include <algorithm> using namespace std; struct node {int score,ns;}; un

2020-08-30 00:46:23 266

原创 pat甲级1126 Eulerian Path (25分)

文章目录pat甲级1126 Eulerian Path (25分)1.题意理解2.分析3.代码:(O(n))(O(n))(O(n)) pat甲级1126 Eulerian Path (25分) 1.题意理解 本题是判断题。非常简单,无需任何推论来做,只需明白定义即可: connected graphs with all vertices of even degree have an Eulerian circuit, and such graphs are called Eulerian. If there

2020-08-29 08:14:48 148

原创 pat甲级1122 Hamiltonian Cycle (25分)

文章目录PAT甲级 1122 Hamiltonian Cycle (25分)1.题解1.1分析1.2检验例子的判定条件1.3代码1.4结语 PAT甲级 1122 Hamiltonian Cycle (25分) 1.题解 1.1分析 这道题非常简单,首先点数只有200,所以就给算法选择带来非常大的灵活性,(怎么也不会超时)。其次,问题是查询式问题只需要检验给定例子是否正确(:改成求有多少个哈密尔顿图,并按行输出可就难了,其实也不是很难:)。如果改成点数1000,并求多少个哈密尔顿图并输出,就是一道甲级30分题

2020-08-28 16:03:56 368

原创 pat甲级1123Is It a Complete AVL Tree (30分)

pat甲级1123Is It a Complete AVL Tree (30分) 模板题;代码较长,半小时敲完。。。。。。打字太慢 文章目录pat甲级1123Is It a Complete AVL Tree (30分)1.AVL插入结点模板2.层序遍历模板3.主函数 1.AVL插入结点模板 struct node { int data,height=1; node *lchild=NULL,*rchild=NULL; node(int _data) {data=_data;} }

2020-08-28 10:57:15 158

原创 pat甲级1143 Lowest Common Ancestor (30分)

pat甲级1143 Lowest Common Ancestor (30分) 文章目录pat甲级1143 Lowest Common Ancestor (30分)1.超时做法(测试点4) 1.超时做法(测试点4) 复杂度:O(mnlog⁡n)O(mn\log n)O(mnlogn)(m,n取最大时超时) 代码如下: #include <iostream> #include <unordered_map> #include <vector> using namespace

2020-08-27 16:16:49 237

原创 pat甲级 1146 Topological Order (25分)

pat甲级 1146 Topological Order (25分) note:把测试序列看作队列容器的出序列,判断每次元素出队,入度是否为零即可; 代码: #include <iostream> #include <vector> #include <unordered_map> using namespace std; unordered_map<int,vector<int>> s; unordered_map<int,int>

2020-08-27 13:00:13 141

原创 素数筛的几种算法

文章目录1.普通筛法(O(nn)O(n\sqrt{n})O(nn​))2.Erotasthenes筛法(O(nlog⁡log⁡n))(O(n\log\log n))(O(nloglogn))3.欧拉筛法(O(n))(O(n))(O(n)) 1.普通筛法(O(nn)O(n\sqrt{n})O(nn​)) note:从1~n枚举,判断每个数是否是素数,打印 1~n的素数表 代码: //判断一个数是否是素数 bool Isprime(int x) { if(x<2) return false;

2020-08-27 08:58:48 502

原创 拓扑排序+判环总结

拓扑排序+判环 二维

2020-08-26 19:09:28 684

原创 pat甲级1149 1149 Dangerous Goods Packaging (25分)

pat甲级1149 1149 Dangerous Goods Packaging (25分) note:非并查集,水题,10分钟小代码 代码: #include <iostream> #include <vector> #include <unordered_map> using namespace std;

2020-08-25 14:32:36 165

原创 pat甲级1151 LCA in a Binary Tree (30分)

pat甲级1151 LCA in a Binary Tree (30分) #include <iostream> #include <unordered_map> #include <vector> using namespace std; vector<int> in,pre; unordered_map<int,int> pos;//不可以直接开数组pos[10005],因为整数内含有负数,无需排序,因此用unordered_map //各分

2020-08-25 08:56:20 286

原创 pat甲级 1125 Chain the Ropes (25分)

pat甲级 1125 Chain the Ropes (25分) note:哈夫曼树的变形,隐含条件在代码注释处 代码如下:(题目最后一句描述模糊而且后台测试用例结果不对,试了几次 才知道根本不用四舍五入,理解思想就好,复习一下哈夫曼树) #include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { int n; cin>&

2020-08-23 18:57:48 170

原创 pat甲级 1118 Birds in Forest (25分)

pat甲级 1118 Birds in Forest (25分) note:并查集+路径压缩 #include <iostream> #include <unordered_set> using namespace std; int pre[10005],isRoot[10005]={0}; unordered_set<int> s;//去重不排序,节省运行时间 int findpre(int x) { int a=x; while(x!=pre[x])

2020-08-23 14:14:43 255

原创 pat甲级 1117 Eddington Number (25分)

pat甲级 1117 Eddington Number (25分) note:现场定义题。“Eddington number”, E – that is, the maximum integer E such that it is for E days that one rides more than E miles。 意思是,n个数中大于k的个数恰好为k个,k即为"Eddington number"。把数字按从大到小排序,则a[i]>i,说明序列a中存在i个数大于i,i的最大值即为"Eddingto

2020-08-23 09:30:36 200

原创 pat甲级 1115 Counting Nodes in a BST (30分)

pat甲级 1115 Counting Nodes in a BST (30分) note:常规题,一般思路:建树+搜索(DFS/BFS),至于怎么建树,怎么搜索就不细说了,很多数据结构教科书例如清华殷人昆(C语言),清华邓俊辉(c++)都有非常经典的函数代码,思想其实一样。 优化思路:搜索过程均是沿着树向下搜索:DFS以深度为标尺,每次都向更深的子树下探,直到叶节点然后回退;BFS是一层一层向下搜索,遍历完一层再搜索下一层。因此搜索的过程其实是把整个树重复走了一遍,那么,可以不要搜索过程直接在建树的同时记

2020-08-22 18:35:59 187

原创 pat甲级1086 Tree Traversals Again (25分)

pat甲级1086 Tree Traversals Again (25分) note:push序列是先序序列,pop序列是中序序列,由先序和中序序列转后序序列。 代码如下: #include <iostrream> #include <vector> #include <stack> using namespace std; vector<int> value,pre,in; int n,cnt=1; void postorder(int root,int

2020-08-22 08:52:41 166

原创 pat甲级 1138 Postorder Traversal (25分)

pat甲级 1138 Postorder Traversal (25分) note:模板题 代码: #include <iostream> #include <vector> using namespace std; vector<int> pre,in; bool flag=false; void postorder(int preL,int inL,int inR) { if(inL>inR||flag) return; int i=inL;

2020-08-21 21:08:52 159

原创 pat甲级1119 Pre- and Post-order Traversals

pat甲级1119 Pre- and Post-order Traversals note:是否有唯一二叉树,关键在于看非叶节点中是否存在只有一个子树的根节点,若有,则二叉树不唯一,因为无法确定该子树是左子树还是右子树。题目中说二叉树不唯一时,输出其中一种可能的中序序列即可,因此可以将唯一的子树看作左子树,也可以看作右子树,我的做法是看作左子树。 中序遍历方法:首先要确定根节点和子树结点。根节点是先序序列的队首数字也是后序序列的队尾数字。若根节点为非叶子节点,则左子树必然存在,且左子树根节点为先序序列中根节

2020-08-21 19:04:37 183

原创 pat甲级 1071 Speech Patterns (25分)

pat甲级1071 水题,直接上代码 #include <iostream> #include <map> #include <cctype> using namespace std; int main() { string s, t; getline(cin, s); map<string, int> m; pair<string,int> temp; for(int i = 0; i <= (in

2020-08-18 09:46:21 177

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除