
Codeup墓地
考研复试机考
「已注销」
随缘。。。随缘。。。。。
展开
-
【算法笔记第8.2节-BFS 】广度优先搜索
给出一个m x n的矩阵,矩阵中的元素为0或1。称位置(x, y)与其上下左右四个位置(x,y+1)、(x, y-1)、(x+1, y)、(x-1, y)是相邻的。如果矩阵中有若干个1是相连的(不必两两相连),那么称这些1构成了一个“块”。求给定的矩阵中“块”的个数。 0 1 1 1 0 0 10 0 1 0 0 0 00 0 0 0 1 0 00 0 0 1 1 1 01 1 1 0...原创 2019-03-13 08:59:18 · 327 阅读 · 0 评论 -
【算法笔记第8.1节-DFS 】问题 F: 【递归入门】走迷宫
[提交][状态][讨论版][命题人:外部导入]题目描述 有一个n*m格的迷宫(表示有n行、m列),其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,文件读入这n*m个数据和起始点、结束点(起始点和结束点都是用两个数据来描述的,分别表示这个点的行号和列号)。现在要你编程找出所有可行的道路,要求所走的路中没有重复的点,走时只能是上下左右四个方向。如果一条路都不可行,则输出相应信...原创 2019-03-12 20:26:16 · 421 阅读 · 1 评论 -
【算法笔记第8.1节-DFS 】问题 E: 【递归入门】出栈序列统计(卡特兰数||递归)
题目描述栈是常用的一种数据结构,有n令元素在栈顶端一侧等待进栈,栈顶端另一侧是出栈序列。你已经知道栈的操作有两•种:push和pop,前者是将一个元素进栈,后者是将栈顶元素弹出。现在要使用这两种操作,由一个操作序列可以得到一系列的输出序列。请你编程求出对于给定的n,计算并输出由操作数序列1,2,…,n,经过一系列操作可能得到的输出序列总数。输入一个整数n(1<=n<=1...原创 2019-03-12 10:46:33 · 644 阅读 · 0 评论 -
【算法笔记第8.1节-DFS 】问题 D: 【递归入门】n皇后 问题(原始的8皇后问题)
题目描述 会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。输入一个整数n( 1 < = n < = 10 )输出每行输出对应一种方案,按字典序输出所有方案。每种方案顺序输出皇后所在的列号,相邻两数之间用空格隔开。如果一组可行方案都...原创 2019-03-12 09:26:34 · 462 阅读 · 0 评论 -
【算法笔记第8.1节-DFS 】问题 C: 【递归入门】组合+判断素数
题目描述已知 n 个整数b1,b2,…,bn以及一个整数 k(k<n)。从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为: 3+7+12=22 3+7+19=29 7+12+19=38 3+12+19=34。 现在,要求你计算出和为素数共有多少种。例如上例,...原创 2019-03-11 21:23:12 · 299 阅读 · 0 评论 -
【算法笔记第8.1节-DFS 】问题 B: 【递归入门】组合的输出
题目描述排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r < = n),我们可以简单地将n个元素理解为自然数1,2,…,n,从中任取r个数。现要求你不用递归的方法输出所有组合。例如n = 5 ,r = 3 ,所有组合为:1 2 31 2 41 2 51 3 41 3 51 4 52 3 42 3 52 4 53 4 5输入一...原创 2019-03-11 17:09:25 · 231 阅读 · 1 评论 -
【算法笔记第8.1节-DFS 】问题 A: 【递归入门】全排列
题目描述 排列与组合是常用的数学方法。先给一个正整数 ( 1 < = n < = 10 )例如n=3,所有组合,并且按字典序输出:1 2 31 3 22 1 32 3 13 1 23 2 1输入输入一个整数n( 1<=n<=10)输出输出所有全排列每个全排列一行,相邻两个数用空格隔开(最后一个数后面没有空格)样例输入...原创 2019-03-11 16:31:27 · 612 阅读 · 0 评论 -
【算法笔记第8.1节-DFS 】深度优先搜索
有n件物品,每件物品的重量为w[i], 价值为c[i]。现在需要选出若干件物品放入一个重量为v的背包中,使得在选入背包的物品重量和不超过容量v的前提下,让背包中物品的价值之和最大,求最大价值。(1<=n<=20) #include<stdio.h>const int maxn = 30;int n, v, maxValue = 0;int w[maxn], c[m...原创 2019-03-11 16:13:48 · 280 阅读 · 0 评论 -
【算法笔记第7.3节 】问题 F: 算法2-25 有序单链表删除重复元素
题目描述根据一个递增的整数序列构造有序单链表,删除其中的重复元素输入输入包括多组测试数据,每组测试数据占一行,第一个为大于等于0的整数n,表示该单链表的长度,后面跟着n个整数,表示链表的每一个元素。整数之间用空格隔开输出针对每组测试数据,输出包括两行,分别是删除前和删除后的链表元素,用空格隔开如果链表为空,则只输出一行,list is empty样例输入5 1 2...原创 2019-03-11 14:55:59 · 328 阅读 · 0 评论 -
【算法笔记第7.3节 】问题 E: 算法2-24 单链表反转(头插建表+尾插反转)
[提交][状态][讨论版][命题人:外部导入]题目描述根据一个整数序列构造一个单链表,然后将其反转。例如:原单链表为 2 3 4 5 ,反转之后为5 4 3 2输入输入包括多组测试数据,每组测试数据占一行,第一个为大于等于0的整数n,表示该单链表的长度,后面跟着n个整数,表示链表的每一个元素。整数之间用空格隔开输出针对每组测试数据,输出包括两行,分别是反转前和反转后的链...原创 2019-03-10 21:20:02 · 262 阅读 · 0 评论 -
【算法笔记第7.3节 】问题 D: 链表查找(线性表)
[提交][状态][讨论版][命题人:外部导入]题目描述线性表(a1,a2,a3,…,an)中元素递增有序且按顺序存储于计算机内。要求设计一算法完成:(1) 用最少时间在表中查找数值为x的元素。(2) 若找到将其与后继元素位置相交换。(3) 若找不到将其插入表中并使表中元素仍递增有序。输入输入:x=3输入长度:9输入数据:2 3 5 7 12 15 17 23 ...原创 2019-03-10 20:47:26 · 269 阅读 · 0 评论 -
【算法笔记第7.3节 链表处理】 问题 C: 最快合并链表(线性表)
题目描述知L1、L2分别为两循环单链表的头结点指针,m,n分别为L1、L2表中数据结点个数。要求设计一算法,用最快速度将两表合并成一个带头结点的循环单链表。输入m=53 6 1 3 5n=4.7 10 8 4输出3 6 1 3 5 7 10 8 4样例输入73 5 1 3 4 6 055 4 8 9 5样例输出3 5 1 3 4...原创 2019-03-10 20:04:31 · 665 阅读 · 0 评论 -
【算法笔记第7.3节 链表处理】 问题 B: C语言-链表排序
题目描述已有a、b两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按学号升序排列。输入第一行,a、b两个链表元素的数量N、M,用空格隔开。 接下来N行是a的数据 然后M行是b的数据 每行数据由学号和成绩两部分组成输出按照学号升序排列的数据样例输入2 35 1006 893 824 952 10样例输出2 103 824 955 ...原创 2019-03-10 20:03:09 · 170 阅读 · 0 评论 -
【算法笔记第7.3节 】问题 A: 算法2-8~2-11:链表的基本操作
题目描述链表是数据结构中一种最基本的数据结构,它是用链式存储结构实现的线性表。它较顺序表而言在插入和删除时不必移动其后的元素。现在给你一些整数,然后会频繁地插入和删除其中的某些元素,会在其中某些时候让你查找某个元素或者输出当前链表中所有的元素。下面给你基本的算法描述:图1:链表类型的定义以及获得链表元素的算法描述图2:链表的插入算法描述图3:链表的删除算法描述...原创 2019-03-10 17:20:08 · 532 阅读 · 0 评论 -
【算法笔记第7.3节 】链表处理
一. 动态链表#include<stdio.h>#include<stdlib.h>struct node{ int data; //数据域 node* next;//指针域};/*malloc函数是c语言中stdlib.h头文件下用于申请动态内存的函数,其返回类型为申请的同变量类型的指针。*/node* create(int a[]){...原创 2019-03-10 15:58:25 · 220 阅读 · 0 评论 -
【算法笔记第6.9节 algorithm 】问题 C: 数组逆置
题目描述输入一个字符串,长度小于等于200,然后将数组逆置输出。输入测试数据有多组,每组输入一个字符串。输出对于每组输入,请输出逆置后的结果。样例输入tianqin样例输出niqnait提示注意输入的字符串可能会有空格。#include<stdio.h>#include<algorithm>#include&l...原创 2019-03-10 13:29:38 · 146 阅读 · 0 评论 -
【算法笔记第6.9节 algorithm 】问题 B: 全排列
题目描述给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。我们假设对于小写字母有'a' < 'b' < ... < 'y' < 'z',而且给定的字符串中的字母已经按照从小到大的顺序排列。输入输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。输出输出这个字符串的所有排列方式,每行一个排列。要求字母序比较小的排...原创 2019-03-10 13:27:40 · 441 阅读 · 0 评论 -
【算法笔记第6.9节 algorithm 】问题 A: 求最大最小数
题目描述先输入N,表示数的个数,然后输入N个数,求这N个数的最大值和最小值。N<=10000,输入的数的绝对值不大于10^6样例输入4 2 0 1 2样例输出2 0多组测试数组#include<stdio.h>#include<algorithm>using namespace std;int main(){ in...原创 2019-03-10 13:26:24 · 421 阅读 · 0 评论 -
【算法笔记第6.8节 pair 】问题 A: 重心在哪里
题目描述每个人都知道牛顿发现万有引力的故事。自从牛顿发现万有引力后,人们用万有引力理论解决了非常多的问题。不仅如此,我们也知道了每个物体都有自己的重心。现在,给你三角形三个顶点的坐标,你能计算出三角形的重心吗?输入题目包含多组测试数据。第一行输入一个正整数n,表示测试数据的个数,当n=0时,输入结束。接下来n行,每行包含6个数字x1,y1,x2,y2,x3,y3,表示三角形三个顶点...原创 2019-03-10 10:53:18 · 693 阅读 · 0 评论 -
【算法笔记第6.7节 stack 】问题 B: Problem E(括号匹配)
问题 B: Problem E时间限制: 1 Sec内存限制: 32 MB提交: 608解决: 207[提交][状态][讨论版][命题人:外部导入]题目描述请写一个程序,判断给定表达式中的括号是否匹配,表达式中的合法括号为”(“, “)”, “[", "]“, “{“, ”}”,这三个括号可以按照任意的次序嵌套使用。输入有多个表达式,输入数据的第一行是表达式的数目,...原创 2019-03-09 21:43:57 · 201 阅读 · 0 评论 -
【算法笔记第9.6节-并查集】问题 D: More is better
题目描述Mr Wang wants some boys to help him with a project. Because the project is rather complex, the more boys come, the better it will be. Of course there are certain requirements.Mr Wang selected a ...原创 2019-03-16 15:15:25 · 325 阅读 · 1 评论 -
【算法笔记第9.6节-并查集】问题 C: How Many Tables
题目描述Today is Ignatius' birthday. He invites a lot of friends. Now it's dinner time. Ignatius wants to know how many tables he needs at least. You have to notice that not all the friends know each ot...原创 2019-03-16 15:04:21 · 274 阅读 · 0 评论 -
【算法笔记第9.6节-并查集】问题 B: 畅通工程
题目描述某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?输入测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M;随后的M行对应M条道路,每行...原创 2019-03-16 14:59:38 · 1097 阅读 · 0 评论 -
【算法笔记第9.6节-并查集】问题 A: 通信系统
问题 A: 通信系统时间限制: 1 Sec内存限制: 32 MB提交: 971解决: 273[提交][状态][讨论版][命题人:外部导入]题目描述某市计划建设一个通信系统。按照规划,这个系统包含若干端点,这些端点由通信线缆链接。消息可以在任何一个端点产生,并且只能通过线缆传送。每个端点接收消息后会将消息传送到与其相连的端点,除了那个消息发送过来的端点。如果某个端点是产生消息...原创 2019-03-16 14:36:35 · 373 阅读 · 0 评论 -
【算法笔记第9.5节-平衡二叉树 】问题 A: 算法9-9~9-12:平衡二叉树的基本操作
题目描述平衡二叉树又称AVL树,它是一种具有平衡因子的特殊二叉排序树。平衡二叉树或者是一棵空树,或者是具有以下几条性质的二叉树:1. 若它的左子树不空,则左子树上所有结点的值均小于它的根节点的值;2. 若它的右子树不空,则右子树上所有结点的值均大于它的根节点的值;3. 它的左右子树也分别为平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。...原创 2019-03-16 10:29:33 · 466 阅读 · 1 评论 -
【算法笔记第9.4节-二叉查找树BST 】问题 B: 二叉搜索树
题目描述判断两序列是否为同一二叉搜索树序列输入开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束。接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉搜索树。输出如果序列相同则输出Y...原创 2019-03-15 21:13:57 · 298 阅读 · 0 评论 -
【算法笔记第9.4节-二叉查找树BST 】问题 A: 二叉排序树
题目描述输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。输入输入第一行包括一个整数n(1<=n<=100)。接下来的一行包括n个整数。输出可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序、中序和后序遍历。每种遍历结果输出一行。每行最后一个数据之后有一个空格。样例输入12 28 15 421 1...原创 2019-03-15 20:42:46 · 262 阅读 · 0 评论 -
【算法笔记第9.3节-树 】问题 B: 树的高度
问题 B: 树的高度时间限制: 1 Sec内存限制: 128 MB题目描述一棵树有n个节点,其中1号节点为根节点。输入第一行是整数n,表示节点数后面若干行,每行两个整数a b,表示b是a的子节点。输出求这棵树的高度(根节点为第1层)样例输入51 21 33 43 5样例输出3树的静态写法,同时保存结点编号最大的值,层序遍...原创 2019-03-15 15:57:24 · 801 阅读 · 0 评论 -
【算法笔记第9.3节-树 】问题 A: 树查找
题目描述有一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY。该树是完全二叉树。输入输入有多组数据。每组输入一个n(1<=n<=1000),然后将树中的这n个节点依次输入,再输入一个d代表深度。输出输出该树中第d层得所有节点,节点间用空格隔开,最后一个节点后没有空格。样例输入51 2 3 4 5 771 ...原创 2019-03-15 15:26:16 · 353 阅读 · 0 评论 -
【算法笔记第9.2节-树 】问题 D: 二叉树遍历(先序字符串建树)
题目描述编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。例如如下的先序遍历字符串:ABC##DE#G##F###其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。输入输入包括1行字符串,长度不超过100。输出可能有多组测试数据,对于每组数据,输出将输入字符串建...原创 2019-03-15 10:41:28 · 343 阅读 · 0 评论 -
【算法笔记第9.2节-树 】问题 C: 二叉树遍历
题目描述二叉树的前序、中序、后序遍历的定义:前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树;中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树;后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。给定一棵二叉树的前序遍历和中序遍历,求其后序遍历(提示:给定前序遍历与中序遍历能够唯一确定后序遍历)。输入两个字符串,其长度n均小于...原创 2019-03-15 10:16:01 · 191 阅读 · 0 评论 -
【算法笔记第9.2节-树 】问题 A: 复原二叉树
题目链接题目描述小明在做数据结构的作业,其中一题是给你一棵二叉树的前序遍历和中序遍历结果,要求你写出这棵二叉树的后序遍历结果。输入输入包含多组测试数据。每组输入包含两个字符串,分别表示二叉树的前序遍历和中序遍历结果。每个字符串由不重复的大写字母组成。输出对于每组输入,输出对应的二叉树的后续遍历结果。样例输入DBACEGF ABCDEFGBCAD CBAD样例...原创 2019-03-14 20:41:14 · 154 阅读 · 0 评论 -
【算法笔记第9节-树 】遍历
目录1.常用操作2.给定一棵二叉树的先序遍历序列和中序遍历序列,重建这颗二叉树。3.给出一棵二叉树的后序遍历序列和中序遍历序列,求这棵二叉树的层序遍历序列。4.二叉树静态化5.树的静态写法6. 二叉树静态化7. 二叉查找树8. 平衡二叉树9. 并查集10. 堆排序 常用操作 #include<stdio.h>struct node...原创 2019-03-14 20:20:50 · 262 阅读 · 0 评论 -
【算法笔记第8.2节-BFS 】问题 E: 【宽搜入门】巧妙取量
题目描述【题目描述】 有三个容器,容量分别为 a,b,c(a> b > c ),一开始a装满油,现在问是否只靠abc三个容器量出k升油。如果能就输出“yes”,并且说明最少倒几次,否则输出“no”。例如:10升油在10升的容器中,另有两个7升和3升的空容器,要求用这三个容器倒油,使得最后在abc三个容器中有一个刚好存有5升油,问最少的倒油次数是多少?(每次倒油,A容器倒到B容器...原创 2019-03-14 15:49:32 · 445 阅读 · 0 评论 -
【算法笔记第8.2节-BFS 】问题 D: 【宽搜入门】魔板(map + bfs)
题目描述在成功地发明了魔方之后,鲁比克先生发明了它的二维版本,称作魔板。这是一张有8个大小相同的格子的魔板:1 2 3 48 7 6 5我们知道魔板的每一个方格都有一种颜色。这8种颜色用前8个正整数来表示。可以用颜色的序列来表示一种魔板状态,规定从魔板的左上角开始,沿顺时针方向依次取出整数,构成一个颜色序列。对于上图的魔板状态,我们用序列(1,2,3,4,5,6,7,8)来表示。这是基本...原创 2019-03-14 10:33:25 · 515 阅读 · 0 评论 -
【算法笔记第8.2节-BFS 】问题 C: 【宽搜入门】8数码难题
题目描述初始状态的步数就算1,哈哈输入:第一个3*3的矩阵是原始状态,第二个3*3的矩阵是目标状态。输出:移动所用最少的步数Input 2 8 31 6 47 0 51 2 38 0 47 6 5Output 6这个题目没有把条件说清楚,完整题目描述:在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。...原创 2019-03-13 23:02:07 · 431 阅读 · 3 评论 -
【算法笔记第8.2节-BFS 】问题 B: DFS or BFS?
题目描述说好了,题目不黑人。给你一个8*8的矩阵,你的初始位置是左下角方格(用'U’表示),你的目标位置是右上角的方格(用'A'表示),其余的62个方格,如果是'.',表示这个方格为空,如果是'S',表示这个方格有一块大石头。好了现在你开始从左下角出发,每次可以往上,下,左,右,左上,右上,左下,右下移动一个方格,或者你可以原地不动,一共九个动作方式,在你做完一个动作后,所有的大石头会往下...原创 2019-03-13 16:55:30 · 242 阅读 · 0 评论 -
【算法笔记5.6小节 -大整数运算 】F : 10进制 VS 2进制(大数进制转换,大数除法)
题目描述对于一个十进制数A,将A转换为二进制数,然后按位逆序排列,再转换为十进制数B,我们称B为A的二进制逆序数。例如对于十进制数173,它的二进制形式为10101101,逆序排列得到10110101,其十进制数为181,181即为173的二进制逆序数。输入一个1000位(即10^999)以内的十进制数。输出输入的十进制数的二进制逆序数。样例输入985样例输出...原创 2019-03-07 13:30:05 · 359 阅读 · 0 评论 -
【算法笔记5.6小节 -大整数运算 】E : 大整数排序(大数比较大小 + 冒泡排序)
题目描述对N个长度最长可达到1000的数进行排序。输入输入第一行为一个整数N,(1<=N<=100)。接下来的N行每行有一个数,数的长度范围为1<=len<=1000。每个数都是一个正数,并且保证不包含前缀零。输出可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行。样例输入41231234...原创 2019-03-07 12:49:20 · 435 阅读 · 0 评论 -
【算法笔记5.6小节 -大整数运算 】D:进制转换(模拟短除法+大数除法)
先看一道大数除法的问题:1017 A除以B (20 分)本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。输入格式:输入在一行中依次给出 A 和 B,中间以 1 空格分隔。输出格式:在一行中依次输出 Q 和 R,中间以 1 空格分隔。输入样例:1234567890509...原创 2019-03-06 21:36:05 · 531 阅读 · 0 评论