03 2020 档案

摘要:英文题目:1101 Quick Sort 中文题目:1045 快速排序 主元判断方法:如果一个元素大于等于其左边所有元素的最大值,小于等于其右边所有元素的最小值,那么这个元素可能是主元。 1 #include<iostream> 2 #include<algorithm> 3 using names 阅读全文
posted @ 2020-03-27 13:12 tangq123 阅读(195) 评论(0) 推荐(0)
摘要:英文题目:1100 Mars Numbers 中文题目:1044 火星数字 1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 string hashtable1[13] = {"tret","jan", "feb" 阅读全文
posted @ 2020-03-27 13:05 tangq123 阅读(167) 评论(0) 推荐(0)
摘要:英文题目:1105 Spiral Matrix 中文题目:1050 螺旋矩阵 1 #include<iostream> 2 #include<vector> 3 #include<algorithm> 4 #include<cmath> 5 using namespace std; 6 7 int 阅读全文
posted @ 2020-03-27 12:59 tangq123 阅读(166) 评论(0) 推荐(0)
摘要:英文题目:1104 Sum of Number Segments 中文题目:1049 数列的片段和 1 #include<iostream> 2 using namespace std; 3 4 int main() { 5 int n; 6 double t,sum = 0; 7 cin>>n; 阅读全文
posted @ 2020-03-27 12:12 tangq123 阅读(157) 评论(0) 推荐(0)
摘要:题目:1123 Is It a Complete AVL Tree 该题目综合了:1066 Root of AVL Tree与1110 Complete Binary Tree。 大致题意:给出一个包含N个元素的序列,构建一个平衡二叉树,然后判断其是否是一棵完全二叉树。 思路分析:先用七步口决构建平 阅读全文
posted @ 2020-03-26 17:23 tangq123 阅读(181) 评论(0) 推荐(0)
摘要:题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805404939173888 大致题意就是给出一个包含N个元素的序列,构建一个平衡二叉树,然后输出根结点上的元素。 这是一道模板题,要记住大体流程,然后反复练习。 PS 阅读全文
posted @ 2020-03-26 16:13 tangq123 阅读(123) 评论(0) 推荐(0)
摘要:题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805361586847744 1 #include<iostream> 2 #include<vector> 3 #include<map> 4 #include<al 阅读全文
posted @ 2020-03-25 17:45 tangq123 阅读(139) 评论(0) 推荐(0)
摘要:题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805362341822464 大致题意就是求叶子节点的最小点权,并统计其个数。 一刷:1106 Lowest Price in Supply Chain 1 #incl 阅读全文
posted @ 2020-03-25 16:29 tangq123 阅读(126) 评论(0) 推荐(0)
摘要:英文题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805360043343872 中文题目:https://pintia.cn/problem-sets/994805260223102976/problems/994 阅读全文
posted @ 2020-03-25 15:56 tangq123 阅读(143) 评论(0) 推荐(0)
摘要:英文题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805360777347072 中文题目:https://pintia.cn/problem-sets/994805260223102976/problems/994 阅读全文
posted @ 2020-03-25 15:17 tangq123 阅读(175) 评论(0) 推荐(0)
摘要:题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805353470869504 题目大意: 给出一棵树的结点个数n,以及它的前序遍历和后序遍历,输出它的中序遍历,如果中序遍历不唯一就输出No,且输出其中一个中序即可,如 阅读全文
posted @ 2020-03-24 09:51 tangq123 阅读(185) 评论(0) 推荐(0)
摘要:题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805358663417856 输出要求: 翻译结果: 在最短路径不唯一的情况下,输出最短路径中最快的一条,保证唯一。 如果最快的路径不是唯一的,则输出通过最少交叉口的路 阅读全文
posted @ 2020-03-22 13:03 tangq123 阅读(199) 评论(0) 推荐(0)
摘要:题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805356599820288 题目比较麻烦,因为限时200ms,所以要用散列。 1 #include<iostream> 2 #include<vector> 3 #i 阅读全文
posted @ 2020-03-22 10:00 tangq123 阅读(188) 评论(0) 推荐(0)
摘要:题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805359372255232 算法思想:采用层次遍历,将所有结点(包括空结点)入队。当遇到空结点时,查看其后是否有非空结点。若有,则二叉树不是完全二叉树。 1 #inc 阅读全文
posted @ 2020-03-21 15:28 tangq123 阅读(146) 评论(0) 推荐(0)
摘要:题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805355987451904 大致题意就是给出一个序列,构造一棵二叉查找树,输出最大深度和次最大深度的结点个数之和。 方法一,BFS 1 #include<iostre 阅读全文
posted @ 2020-03-21 12:57 tangq123 阅读(173) 评论(0) 推荐(0)
摘要:题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805357258326016 大致题意:给出一个包含n个正整数的集合,把集合分成s1,s2,n1,n2分别是s1,s2的元素个数。要求输出 最小|n1-n2|,最大|s 阅读全文
posted @ 2020-03-21 11:37 tangq123 阅读(156) 评论(0) 推荐(0)
摘要:题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805357933608960 分析: 首先,遍历字符串str,筛选出所有好键,判断好键方法:如果当前字符连续出现的次数不是 k的整数倍,那么标记该字符为好键。 然后,定 阅读全文
posted @ 2020-03-21 11:03 tangq123 阅读(168) 评论(0) 推荐(0)
摘要:英文题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805354762715136 中文题目:https://pintia.cn/problem-sets/994805260223102976/problems/994 阅读全文
posted @ 2020-03-19 18:41 tangq123 阅读(197) 评论(0) 推荐(0)
摘要:英文题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805355358306304 中文题目:https://pintia.cn/problem-sets/994805260223102976/problems/994 阅读全文
posted @ 2020-03-19 17:04 tangq123 阅读(164) 评论(0) 推荐(0)
摘要:这是一道模板题,要先记住大体流程,然后反复练习。 1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 5 int father[10010]; 6 7 void init() { 8 for(int i = 1; i 阅读全文
posted @ 2020-03-19 15:42 tangq123 阅读(188) 评论(0) 推荐(0)
摘要:英文题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805352359378944 中文题目:https://pintia.cn/problem-sets/994805260223102976/problems/994 阅读全文
posted @ 2020-03-19 11:05 tangq123 阅读(148) 评论(0) 推荐(0)
摘要:题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805351814119424 大致题意就是给出一个图,K个不同的路径,判断是否是哈密尔顿路径,即包括图中所有顶点的环。 分析: 1,判断路径能否走通,能则输出NO,否则 阅读全文
posted @ 2020-03-19 10:26 tangq123 阅读(585) 评论(0) 推荐(0)
摘要:英文版题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805352925609984 中文版题目:https://pintia.cn/problem-sets/994805260223102976/problems/9 阅读全文
posted @ 2020-03-18 20:23 tangq123 阅读(167) 评论(0) 推荐(0)
摘要:大致题意就是给出一棵树的后序、中序遍历序列,然后建一棵树,,以蛇皮走位(奇层逆序,偶层顺序)输出其层序遍历序列。 1 #include<iostream> 2 #include<vector> 3 #include<queue> 4 #include<map> 5 using namespace s 阅读全文
posted @ 2020-03-18 19:09 tangq123 阅读(152) 评论(0) 推荐(0)
摘要:题目大意:如果一个连通图的所有顶点的度都是偶数,那么它是Eulerian,如果除了两个顶点的度是奇数其它的是偶数,那么它是semi-Eulerian,否则它是Non-Eulerian。 题目翻译: 如果图G中的一个路径包括每个边恰好一次,则该路径称为欧拉路径。 如果一个回路是欧拉路径,则称为欧拉回路 阅读全文
posted @ 2020-03-18 17:56 tangq123 阅读(637) 评论(0) 推荐(0)
摘要:英文版题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805350316752896 中文版题目:https://pintia.cn/problem-sets/994805260223102976/problems/9 阅读全文
posted @ 2020-03-18 16:56 tangq123 阅读(147) 评论(0) 推荐(0)
摘要:英文版题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805350803292160 中文版题目:https://pintia.cn/problem-sets/994805260223102976/problems/9 阅读全文
posted @ 2020-03-18 16:46 tangq123 阅读(156) 评论(0) 推荐(0)
摘要:题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805347523346432 本文完全参考刘婼的思路和代码!!! 参考地址:https://www.liuchuo.net/archives/3850 我刚开始想的是用 阅读全文
posted @ 2020-03-18 12:27 tangq123 阅读(240) 评论(0) 推荐(0)
摘要:题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805347921805312 那天模拟考试做这道题时,直接把我心态搞崩了。如今再做这道题,感触颇深啊~ 借助中序遍历,除了根结点和叶子结点,遍历到其它结点时,在遍历 阅读全文
posted @ 2020-03-17 14:56 tangq123 阅读(268) 评论(0) 推荐(0)
摘要:方法一:暴力求解,超时凉凉~~ 1 #include<iostream> 2 #include<unordered_map> 3 #include<vector> 4 #include<algorithm> 5 using namespace std; 6 7 bool cmp(const pair 阅读全文
posted @ 2020-03-17 14:20 tangq123 阅读(269) 评论(11) 推荐(0)
摘要:大致题意就是给出包含N个元素的序列,判断其是否是N皇后的解。 已知每个坐标(x,f(x))的横坐标x不同,只需比较 1,列坐标是否相同f(x)(f(x1) - f(x2) == 0)。 2,两个坐标是否在同一对角线上(x1-x2 == |f(x1)-f(x2)|)。 满足1或2都不是解。 1 #in 阅读全文
posted @ 2020-03-17 10:17 tangq123 阅读(203) 评论(0) 推荐(0)
摘要:题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805346063728640 红黑树满足二叉查找树的性质,左小于根,根小于右。 红黑树的特性:(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节 阅读全文
posted @ 2020-03-16 22:23 tangq123 阅读(921) 评论(0) 推荐(0)
摘要:题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805346428633088 方法一: 邻接表存储图,邻接矩阵标记边是否被访问,凉凉~~ 1 #include<iostream> 2 #include<vector> 阅读全文
posted @ 2020-03-16 16:51 tangq123 阅读(209) 评论(0) 推荐(0)
摘要:这是一道模板题,要先记住大体流程然后反复练习。 flag作为标记,可以根据其值的大小,把结点划分成4种类型。 1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 5 const int maxn = 100010; 阅读全文
posted @ 2020-03-16 15:39 tangq123 阅读(109) 评论(0) 推荐(0)
摘要:题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805347145859072 ps:我英语好菜,没能理解题意。 1 #include<iostream> 2 using namespace std; 3 int 阅读全文
posted @ 2020-03-15 20:41 tangq123 阅读(179) 评论(0) 推荐(0)
摘要:以后借助map实现字符串转编号,编号一律从 1开始,不要问为什么,血泪教训!!! 大致题意就是A看上了B,A要通过同性别朋友C,如果C认识D,且D是B的同性别朋友,那么A就可以追求B了。 方法一:DFS暴力枚举法,凉凉~~。 1 #include<iostream> 2 #include<vecto 阅读全文
posted @ 2020-03-15 18:01 tangq123 阅读(257) 评论(0) 推荐(0)
摘要:大致题意就是给出一个二叉树的先序、中序遍历序列,要求输出二叉树后序遍历的第一个元素。 1 #include<iostream> 2 using namespace std; 3 4 const int maxn = 50010; 5 int n,pre[maxn],in[maxn],flag = 1 阅读全文
posted @ 2020-03-15 12:08 tangq123 阅读(158) 评论(0) 推荐(0)
摘要:中文版。 1080 MOOC期终成绩 1 #include<iostream> 2 #include<vector> 3 #include<unordered_map> 4 #include<algorithm> 5 #include<cmath> 6 using namespace std; 7 阅读全文
posted @ 2020-03-15 09:29 tangq123 阅读(136) 评论(0) 推荐(0)
摘要:由于给出的数可能超出 long long范围,所以不能对两数直接求和,必须模拟加法运算过程,不然最后一个测试点无法通过。 中文版。 1079 延迟的回文数 1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 5 bo 阅读全文
posted @ 2020-03-15 08:54 tangq123 阅读(184) 评论(0) 推荐(0)
摘要:大致题意就是给出一个二叉查找树BST的先序遍历序列,然后再给出任意一对结点,如果结点不合法,那么输出不合法信息;否则,找出其最近祖先结点。 注意点: 1,如果已知二叉查找树BST的先序(后序)遍历序列,可以对序列进行按从小到大排序,得到中序遍历序列,进一步由先序、中序遍历序列可以唯一构造出一棵二叉树 阅读全文
posted @ 2020-03-14 21:42 tangq123 阅读(190) 评论(0) 推荐(0)
摘要:大致题意就是给出一个图,然后给出一些顶点,判断这些顶点之间是否两两相互连接,如果不是,那么这些顶点不能组成一个圈子clique,否则,如果继续加入其它顶点仍然使得顶点之间两两相互连接,那么这些顶点不是最大的圈子,否则,是最大的圈子。 1 #include<iostream> 2 #include<v 阅读全文
posted @ 2020-03-14 19:42 tangq123 阅读(152) 评论(0) 推荐(0)
摘要:中文版 1085 PAT单位排行 无需构造函数,快速初始化结构体。 1 #include<iostream> 2 #include<cctype> 3 #include<vector> 4 #include<unordered_map> 5 #include<algorithm> 6 using n 阅读全文
posted @ 2020-03-14 18:39 tangq123 阅读(111) 评论(0) 推荐(0)
摘要:中文版 1084 外观数列 1 #include<iostream> 2 using namespace std; 3 int main(){ 4 int d,n; 5 cin>>d>>n; 6 string ans; 7 ans += d+'0'; 8 for(int i = 0; i < n-1 阅读全文
posted @ 2020-03-14 18:06 tangq123 阅读(133) 评论(0) 推荐(0)
摘要:1 #include<iostream> 2 using namespace std; 3 int m,n,cbt[1010],num; 4 void postOrder(int root) { 5 if(root > n) return; 6 postOrder(root*2); 7 postOr 阅读全文
posted @ 2020-03-14 16:53 tangq123 阅读(430) 评论(0) 推荐(0)
摘要:大致题意就是给出一个有向图,和K个拓扑排序序列,判断拓扑排序序列是否正确,不正确就输出序列的编号。。。 拓扑排序序列,永远记住入度为0的顶点先入队列。 1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 5 int mai 阅读全文
posted @ 2020-03-14 16:26 tangq123 阅读(151) 评论(0) 推荐(0)
摘要:考察数据结构书上的hash的内容。 大致题意就是给出一组元素,按照哈希映射公式pos = (Data+k*k) mod Tablesize(哈希表大小为素数)确定可插入元素位置并插入,如果无法插入,就按行输出这个元素。 然后再给出一组元素,求出查找所有元素的平均查找长度。 注意点: 查找插入位置时, 阅读全文
posted @ 2020-03-14 13:22 tangq123 阅读(275) 评论(0) 推荐(0)
摘要:大致题意就是给出一连串的整数(包含正负),找出未出现过的最小正整数。 1 #include<iostream> 2 #include<map> 3 using namespace std; 4 5 int main() { 6 int n,t,ans = 1; 7 map<int,bool> mp; 阅读全文
posted @ 2020-03-14 11:58 tangq123 阅读(200) 评论(0) 推荐(0)
摘要:群里给出的。 HDOJ给出的。 1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 5 int main() { 6 int n; 7 while(scanf("%d",&n) !=EOF) { 8 vector<int> 阅读全文
posted @ 2020-03-13 21:02 tangq123 阅读(166) 评论(0) 推荐(0)
摘要:好难啊!!!自己做是一个错误,加两个超时,呜呜呜。。。 大致题意就是给出一棵树的先序、中序遍历序列,可以构造一棵树。然后给两个顶点,找出这两个结点的最近公共祖先。 思路分析: 1,什么是最近公共祖先?就是说给定 树中两个结点u,v,一定能找到一个且只能找到一个结点root,使得 情况一,root的左 阅读全文
posted @ 2020-03-13 20:56 tangq123 阅读(184) 评论(0) 推荐(0)
摘要:大致题意很直白,就是给出一个无向图,然后给出K条路径,按题目要求判断每条路径,并输出相应的结果。 所以这是一道简单模拟题。 1 #include<iostream> 2 #include<unordered_set> 3 #include<vector> 4 #include<algorithm> 阅读全文
posted @ 2020-03-13 16:20 tangq123 阅读(205) 评论(0) 推荐(0)
摘要:这是PAT乙级 1090 危险品装箱 的英文版。 1 #include<iostream> 2 #include<vector> 3 #include<unordered_map> 4 using namespace std; 5 6 int main() { 7 int n,m,g1,g2,K; 阅读全文
posted @ 2020-03-13 15:27 tangq123 阅读(146) 评论(0) 推荐(0)
摘要:假设玩家i,j是狼人,两个for循环遍历所有玩家说谎的情况,若只有两个玩家说谎,且一个是狼人一个是好人,则假设i,j是狼人成立。 说谎判断: 1,玩家说是狼人的玩家不是狼人。 2,玩家说不是狼人的玩家是狼人。 1 #include<iostream> 2 #include<vector> 3 #in 阅读全文
posted @ 2020-03-13 13:25 tangq123 阅读(143) 评论(0) 推荐(0)
摘要:大致题意就是给出一个完全二叉树的层次序列,按根右左的顺序,输出所有从根结点到叶子结点的路径。最后判断这个完全二叉树是大顶堆,或小顶堆,或非堆。 思路: 1,可以先序遍历(根左右)的方式,用二维动态数组vector 存储所有从根结点到叶子结点的路径,然后倒着输出这些路径。 2,可以根据堆的性质,判断完 阅读全文
posted @ 2020-03-13 10:44 tangq123 阅读(123) 评论(0) 推荐(0)
摘要:大致题意就是给出一个无向图(可能包含若干连通块)、各顶点的权值,如果每一条边上两顶点的权值均不相同,那么输出所有不同权值的顶点个数,否则输出No。 由于题目顶点数 最多是10000,所以采用邻接表存储无向图。 然后使用DFS+回溯剪枝,遍历所有连通块的所有边,并对边上两顶点的权值进行判断即可。 1 阅读全文
posted @ 2020-03-12 22:39 tangq123 阅读(191) 评论(0) 推荐(0)
摘要:在结构体中,不用定义构造函数,实现快速初始化结构体。 struct Student { string ID; int score; } ; vector<Student> v; v.push_back({"我好帅",250}); //快速初始化Student 1 #include<iostream> 阅读全文
posted @ 2020-03-12 21:48 tangq123 阅读(121) 评论(0) 推荐(0)
摘要:大致题意就是找出一个L位的正整数,从中找出第一次出现的K位素数。 1 #include<iostream> 2 #include<cmath> 3 using namespace std; 4 5 bool isPrime(int n) { 6 for(int i = 2; i* i<=n; ++i 阅读全文
posted @ 2020-03-12 21:40 tangq123 阅读(155) 评论(0) 推荐(0)
摘要:处理 编号和字符串 映射的方式相同于 1034 Head of a Gang。 这是一道模板题,要记住大体流程,然后反复练习。这里我使用的方法是Dijkstra+DFS。 1 #include<iostream> 2 #include<vector> 3 #include<map> 4 using 阅读全文
posted @ 2020-03-09 19:26 tangq123 阅读(144) 评论(0) 推荐(0)
摘要:大致题意就是给出 N 个房屋,M个加油站,K 个房屋(加油站)与房屋(加油站)之间的距离,以及加油站的最大服务距离DS。要求找到这样的加油站,即所有房屋处在其服务范围内,并且离该加油站最近的房屋的距离,在其它方案中的是最大的最近距离;如果该最近距离相同,那么要求该加油站距离所有房屋的平均距离最小;如 阅读全文
posted @ 2020-03-09 17:46 tangq123 阅读(180) 评论(0) 推荐(0)
摘要:题目较难,不能使用 Dijkstra内嵌第二标尺的方法来做这道题,所以改用Dijkstra + DFS。 Dijkstra 部分直接写模版,来获取从起点S到其它各顶点的最短路径。 DFS 部分来遍历所有路径,路径上 判断某顶点 要补给资源,还是要拿走资源,与前一个顶点的判断结果有关。(如果对于这题D 阅读全文
posted @ 2020-03-09 12:19 tangq123 阅读(210) 评论(0) 推荐(0)
摘要:我要,疯狂看视频做笔记,学习如下专业课! 408 + 数据库+软件工程+离散数学,晚上练习英语听力和口语。 行百里者半九十,去年复试就是这样凉的,我要吸取教训,不能搞错复试方向,把专业知识学扎实!!! 最后最重要的一点,开始跑步锻炼。 阅读全文
posted @ 2020-03-08 15:45 tangq123 阅读(104) 评论(0) 推荐(0)
摘要:大致题意就是。。。懒得说了。 这是一道模板题,要先记住大体流程,然后反复练习。 方法一:Dijlstra内嵌第二标尺 1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 const int maxn = 510; 5 阅读全文
posted @ 2020-03-08 09:50 tangq123 阅读(139) 评论(0) 推荐(0)
摘要:大致题意就是给出一个图、每个顶点的点权、顶点之间的边权、起点和终点。求出从起点到终点的最短路径的数量、以及最短路径上的最大点权之和。 这是一道模板题,要先记住大体流程,然后反复练习,较难头疼。。。 1 #include<iostream> 2 using namespace std; 3 4 con 阅读全文
posted @ 2020-03-07 20:10 tangq123 阅读(154) 评论(0) 推荐(0)
摘要:大致题意就是给出N个结点 和 N-1条边,判断它们能否形成一棵N个结点的树?如果能就从中选出某个结点,使得整棵树的高度最大。输出所有 满足要求的可以作为根结点的结点。 思路: 第一步,由于连通且边数为 N-1 的图一定是一棵树。所以可以通过并查集判断图是否连通。 第二步,当图连通时,遍历每个顶点,并 阅读全文
posted @ 2020-03-07 09:21 tangq123 阅读(195) 评论(0) 推荐(0)
摘要:大致题意就是给出一个无向图(可能包含若干连通块),删除某个顶点和与其相连的边以后,最少需要添加多少条边,使其成为一个连通图(一个图只包含一个连通块)。 思路: 第一步,删除某个顶点V,直接置visited[V]为已被访问即可。 第二步,删除顶点后,遍历图中所有连通块,并统计个数。 第三步,添加的边数 阅读全文
posted @ 2020-03-06 20:08 tangq123 阅读(219) 评论(0) 推荐(0)
摘要:大致题意就是给出N组数据构造一个无向连通图,然后从顶点U开始统计出 L层 内(除自己外)所有结点的个数。 若使用DFS很容易出问题,比如: 情况一,图中有环。如果整个环上的结点都被访问并标记了,那么与环相连的其它路径上的结点可能无法因为路径上的某个结点被标记了,导致其无法被访问到。 情况二,可能会重 阅读全文
posted @ 2020-03-06 17:36 tangq123 阅读(148) 评论(0) 推荐(0)
摘要:大致题意就是给出 N对 人的通话记录,可以根据通话对象分成若干个组(连通图)。在一个连通图中,任意两个人之间的总通话时长表示边权,一个人参与的总通话时长表示点权,所有人的总通话时长表示总边权。现在给定一个阀值K,且只要连通图的总边权超过K,并满足成员数超过2,则该组视为“犯罪团伙”,而且该组内点权最 阅读全文
posted @ 2020-03-06 11:56 tangq123 阅读(181) 评论(0) 推荐(0)
摘要:判断是否是插入排序的部分与 1035 插入与归并一样。 本题主要考察 堆排序的原理和实现。 首先,把所有双亲结点进行向下调整, 建立大顶堆; 然后,把堆顶元素 与 待排序区的最后一个元素 交换并对堆顶元素向下调整, 如此重复 n-1 次,待排序区逐渐变小,有序区逐渐变大。 1 #include<io 阅读全文
posted @ 2020-03-05 12:43 tangq123 阅读(156) 评论(0) 推荐(0)
摘要:某学校有N个学生,形成M个俱乐部。每个俱乐部里的学生有着一定相似的兴趣爱好,形成一个朋友圈。一个学生可以同时属于若干个不同的俱乐部。根据“我的朋友的朋友也是我的朋友”这个推论可以得出,如果A和B是朋友,且B和C是朋友,则A和C也是朋友。请编写程序计算最大朋友圈中有多少人。 输入格式: 输入的第一行包 阅读全文
posted @ 2020-03-04 22:33 tangq123 阅读(583) 评论(2) 推荐(0)
摘要:大致题意就是给出 N个人的兴趣爱好,如果A与B有相同的爱好H1,那么A与B是朋友,如果B与C有相同的爱好H2,那么B与C是朋友,进一步有A与C是朋友。 输入样例分析: 8 //表示有8个人 3: 2 7 10 //表示人物 1有3个爱好,分别是2 7 10 1: 4 //表示人物 2有1个爱好,分别 阅读全文
posted @ 2020-03-04 19:57 tangq123 阅读(200) 评论(0) 推荐(0)
摘要:题目: 如果A和B是朋友,B和C是朋友,那么A和C是朋友。现在给出 N个人(编号 1~N),判断可以形成多少个朋友圈。 输入格式: 第一行给出一个 正整数N (<= 100),和 朋友对数 M; 给出 M行 朋友关系。 输出格式: 输出朋友圈的个数。 输入样例 1: 4 21 42 3 输出样例 1 阅读全文
posted @ 2020-03-04 13:20 tangq123 阅读(205) 评论(0) 推荐(0)
摘要:大致题意就是给出 N个结点的左孩子结点下标、右孩子结点下标,然后构造一棵 静态二叉树。再给出一个包含N个整数的序列,把这些整数一 一填入这棵二叉树中,使其成为一棵二叉查找树,最后输出其层序遍历序列。 思路: 第一步,根据每个结点的左孩子下标、右孩子下标构造一棵二叉树; 第二步,把包含N个结点的整数序 阅读全文
posted @ 2020-03-03 19:09 tangq123 阅读(121) 评论(0) 推荐(0)
摘要:大致题意就是给出一个包含 N个非负整数的序列,然后构造出一个既是完全二叉树又是二叉查找树的二叉树,然后输出其层序遍历序列。 想了想,其实题目问的是 如何向完全二叉树的每一个结点赋值。。。 第一步,必须知道完全二叉树的存储结构是一维数组CBT,其根结点是下标1,当前根结点root的左孩子是root*2 阅读全文
posted @ 2020-03-03 18:15 tangq123 阅读(131) 评论(0) 推荐(0)
摘要:大致题意就是给出一个包含N个整数的序列,构造出一个二叉查找树,并判断这个序列是否与该二叉查找树的先序序列或者镜像二叉查找树的先序序列一样,如果一样,就输出该二叉查找树的后序序列,否则输出NO。 1 #include<iostream> 2 #include<vector> 3 using names 阅读全文
posted @ 2020-03-03 16:53 tangq123 阅读(122) 评论(0) 推荐(0)
摘要:大致题意就是给出一棵树,求出叶子结点的带权路径长度等于 S的路径(即根结点到叶子结点的路径上的点权权值之和),如果有多条路径序列,那么按反字典序输出它们。 1 #include<iostream> 2 #include<vector> 3 #include<algorithm> 4 using na 阅读全文
posted @ 2020-03-03 10:35 tangq123 阅读(136) 评论(0) 推荐(0)
摘要:大致题意就是给出一棵树,求出每一层叶子节点个数。 1 #include<iostream> 2 #include<vector> 3 #include<algorithm> 4 using namespace std; 5 6 const int maxn = 200; 7 vector<int> 阅读全文
posted @ 2020-03-03 10:01 tangq123 阅读(150) 评论(0) 推荐(0)
摘要:大致题意就是给出一棵树,求出叶子结点的最小权值,并输出该叶子节点的个数。 这是一道模板题,我近期做的几乎都是模板题。我现在认为 树与二叉树 是对 图 的一种严格约束,并且“二叉树,树,图”使用邻接表的存储结构比较多。 1 #include<iostream> 2 #include<vector> 3 阅读全文
posted @ 2020-03-03 09:36 tangq123 阅读(130) 评论(0) 推荐(0)
摘要:大致题意就是给出一棵树,求出哪一层结点的个数最多,输出个数 和第几层。 这题挺简单的,就是写代码的时候比较粗心,导致调试了好久。。。 我用的BFS,总的来说,BFS要比DFS多30行代码,但是BFS更容易理解。 BFS代码: 1 #include<iostream> 2 #include<vecto 阅读全文
posted @ 2020-03-02 19:36 tangq123 阅读(137) 评论(0) 推荐(0)
摘要:大致题意就是给出一棵树,求出叶子结点的最大权值,并输出该叶子节点的个数。 令人疑惑的点: 我这里定义二维数组是vector<int> child[maxn],如果换成vector<int> child(maxn),就会无法push_back数据。。。奇了怪了。 1052 卖个萌 这题也用到了固定一边 阅读全文
posted @ 2020-03-02 17:38 tangq123 阅读(139) 评论(0) 推荐(0)
摘要:题目: 某公司使用某种原材料加工两种规格的产品其中生产每件A产品消耗原材料56kg生产每件B产品消耗原材料64kg。假设该公司现有800kg的原材料编写程序计算A、B各生存多少件剩余的原材料最少? 分析: 由题意可以得出一个二元一次方程:56*x + 64*y <= 800,通过两个for循环暴力求 阅读全文
posted @ 2020-03-02 13:38 tangq123 阅读(1083) 评论(0) 推荐(0)
摘要:大致题意就是求一棵树的所有 叶子节点的权值乘以其对应价格 之和。 1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 const int maxn = 100010; 5 6 struct Node { 7 int pro 阅读全文
posted @ 2020-03-02 13:29 tangq123 阅读(154) 评论(0) 推荐(0)
摘要:大致题意就是给出一个静态二叉树,将其反转后输出层序遍历序列和中序遍历序列。 思路: 使用一维数组存放二叉树的结点,标记输入的孩子结点为已访问,最后可以通过遍历标记数组,找出未被访问的结点即为根结点。 实现反转二叉树的方法:访问完 当前根结点的左孩子和右孩子以后,交换其左、右孩子,后序遍历实现。 层序 阅读全文
posted @ 2020-03-02 11:17 tangq123 阅读(252) 评论(0) 推荐(0)
摘要:这是一道二叉树遍历模板题。 大致题意就是给出 用栈模拟二叉树的中序遍历过程,推断出push的全部元素是先序序列,pop的全部元素是中序序列,最后 根据 先序+中序 = 二叉树,输出二叉树的后序序列。 注意点:如果使用 getline(cin,str),必须要考虑 元素值大于 10的情况,不然 最后一 阅读全文
posted @ 2020-03-02 09:23 tangq123 阅读(348) 评论(0) 推荐(1)
摘要:写递归最重要的教训,不知道就会导致死循环的。 一般来说,DFS的递归边界即判断条件在第二层递归时才开始起作用,第一层不起作用,第二层的递归边界判断的是第一层数据处理的结果。切记切记!!! 所以在写选择分支时,要处理的是当前参数,而不是下一层递归的参数, 所以在主函数中调用DFS时,填入的参数一般都是 阅读全文
posted @ 2020-03-01 19:13 tangq123 阅读(202) 评论(0) 推荐(0)
摘要:题目: 题意: 给定一棵树和每个结点的权值,求所有从根结点到叶子结点的路径,使得每条路径上的结点的权值之和等于给定的常数S。如果存在多条路径,则按路径非递增顺序输出。 输入样例: 20 9 24 10 2 4 3 5 10 2 18 9 7 2 2 1 3 12 1 8 6 2 2 00 4 01 阅读全文
posted @ 2020-03-01 12:23 tangq123 阅读(169) 评论(0) 推荐(0)