04 2021 档案

摘要:Time Limit: 400ms Memory Limit:65636 KB 题目描述(原题为英文):To evaluate the performance of our first year CS majored students,we consider their grades ofthree 阅读全文
posted @ 2021-04-28 16:37 银发制御 阅读(111) 评论(0) 推荐(0)
摘要:Time Limit: 200ms Memory Limit:65636 KB 题目描述宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人”。现给出一批考生的“德 阅读全文
posted @ 2021-04-27 10:40 银发制御 阅读(121) 评论(0) 推荐(0)
摘要:归并排序是一种基于“归并”思想的排序方法,本节主要介绍其中最基本的2-路归并排序。2-路归并排序的原理是,将序列两两分组,将序列归并为[n/2]个组,组内单独排序;然后将这些组再两两归并,生成[n/4]个组,组内再单独排序;以此类推,直到只剩下一个组为止,其核心在于如何将两个有序序列合并成一个有序序 阅读全文
posted @ 2021-04-25 23:44 银发制御 阅读(332) 评论(0) 推荐(0)
摘要:解决一个重要的问题:如果给定一棵二叉树的先序遍历序列和中序遍历序列,重建这棵二叉树。假设已知先序序列为pre1、pre2、…、pren,中序序列为in1、in2、…、inn,如图下图所示。 那么由先序序列的性质可知,先序序列的第一个元素pre1是当前二叉树的根结点。再由中序序列的性质可知,当前二叉树 阅读全文
posted @ 2021-04-19 23:45 银发制御 阅读(857) 评论(0) 推荐(0)
摘要:二叉树的遍历是指通过一定顺序访问二叉树的所有结点。遍历方法一般有四种:先序遍历、中序遍历、后序遍历及层次遍历,其中,前三种一般使用深度优先搜索(DFS)实现,而层次遍历一般使用广度优先搜索(BFS). 无论是这三种遍历中的哪一种,左子树一定先于右子树遍历,且所谓的“先中后”都是指根结点root在遍历 阅读全文
posted @ 2021-04-18 23:52 银发制御 阅读(243) 评论(0) 推荐(0)
摘要:题目描述: 给定一个n* m大小的迷宫,其中* 代表不可通过的墙壁,而“.”代表平地,S表示起点,T代表终点。移动过程中,如果当前位置是(x, y)(下标从0开始),且每次只能前往上下左右、(x, y + 1)、(x, y - 1)、(x - 1, y)、(x + 1, y)四个位置的平地,求从起点 阅读全文
posted @ 2021-04-18 16:41 银发制御 阅读(382) 评论(0) 推荐(0)
摘要:1.树的定义与性质 (1)树(tree)的概念 在数据结构中,树则是用来概括传递关系的一种数据结构。为了简化,数据结构中把树枝分叉处、树叶、树根抽象为结点(node),其中树根抽象为根结点(root),且对一棵树来说最多存在一个根结点;把树叶概括为叶子结点(leaf),且叶子结点不再延伸出新的结点; 阅读全文
posted @ 2021-04-18 10:33 银发制御 阅读(397) 评论(0) 推荐(0)
摘要:前面介绍了深度优先搜索,可知DFS是以深度作为第一关键词的,即当碰到岔道口时总是先选择其中的一条岔路前进,而不管其他岔路,直到碰到死胡同时才返回岔道口并选择其他岔路。接下来将介绍的广度优先搜索(Breadth FirstSearch,BFS)则是以广度为第一关键词,当碰到岔道口时,总是先依次访问从该 阅读全文
posted @ 2021-04-17 19:21 银发制御 阅读(432) 评论(0) 推荐(0)
摘要:深度优先搜索会走遍所有路径,并且每次走到死胡同就代表一条完整路径的形成。这就是说,深度优先搜索是一种枚举所有完整路径以遍历所有情况的搜索方法。使用递归可以很好地实现深度优先搜索。当然也可以使用非递归的方法实现DFS,但是非递归的方法一般情况下会比递归的方法要麻烦。在使用递归的时候,系统还会调用一个叫 阅读全文
posted @ 2021-04-17 19:17 银发制御 阅读(488) 评论(0) 推荐(0)
摘要:题目描述:读入一个只包含 + ,-,×, / 的非负整数计算表达式,计算该表达式的值。输入格式:测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运草符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。输出格式:对每个测试用例输出1行,即该表 阅读全文
posted @ 2021-04-17 19:13 银发制御 阅读(183) 评论(0) 推荐(0)
摘要:栈是一种先进后出的数据结构,以下是其常见操作: (1)清空(clear) 栈的清空操作将栈顶指针TOP置为-1,表示栈中没有元素。 void clear() { TOP = -1; } (2)获取栈内元素个数(size) 由于栈项指针TOP始终指向栈顶元素,而数组下标从0开始、因此栈内元素的数为TO 阅读全文
posted @ 2021-04-17 19:12 银发制御 阅读(517) 评论(0) 推荐(0)
摘要:题意:给出N个结点的地址address、数据域data以及指针域next,然后给出链表的首地址,要求把在这个链表上的结点按data值从小到大输出。样例解释:按照输入,这条链表是这样的(结点格式为[address, data, next]):[00001, 0, 22222]→[22222, 1000 阅读全文
posted @ 2021-04-17 18:59 银发制御 阅读(96) 评论(0) 推荐(0)
摘要:不同于动态链表,需要指针来建立节点之间的联系,而有些问题来说,节点的地址是比较小的整数(例如5位数的整数),这样就没必要建立动态链表,而使用方便得多的静态链表。静态链表的实现原理是hash,通过建立一个结构体数组,并令数组的下标直接表示节点的地址,来达到直接访问数组中的元素就能访问节点的结果。静态链 阅读全文
posted @ 2021-04-17 18:55 银发制御 阅读(119) 评论(0) 推荐(0)
摘要:题意:给出两条链表的首地址以及若干节点的地址,数据,下一个节点的地址,求两条链表的首个共用节点的地址。如果两条链表没有共用节点,则输出-1。思路步骤1:由于地址的范围很小,因此可以直接用静态链表,但是依照题目的要求,在结点的结构体中再定义一个int型变量flag,表示结点是否在第一条链表中出现,是则 阅读全文
posted @ 2021-04-17 18:48 银发制御 阅读(66) 评论(0) 推荐(0)
摘要:对sort函数(需要algorithm头文件),它的cmp可以是“函数”,也可以是“对象” bool myfunction (int i,int j) { return (i<j); } struct myclass { bool operator() (int i,int j) { return 阅读全文
posted @ 2021-04-17 18:46 银发制御 阅读(2402) 评论(0) 推荐(0)
摘要:#include<stdio.h> #include<stdlib.h> struct node { int data; node* next; };//定义链表节点 (一)创建链表 node* create(int* Array) { node* p, * head, * pre; int k = 阅读全文
posted @ 2021-04-17 18:34 银发制御 阅读(143) 评论(0) 推荐(0)
摘要:利用问题的本身与序列的特新,使用两个下标i, j对序列进行扫描(可以同向扫描,也可以反向扫描),以较低的时间复杂度解决问题,一般是O(n) 例1:给定一个递增的正整数序列和一个正整数M,求序列中的两个不同位置的数a和b,使得它们的和恰好为M,输出所有满足条件的方案。加入给定序列{ 1,2,3,4,5 阅读全文
posted @ 2021-04-17 18:31 银发制御 阅读(168) 评论(0) 推荐(0)
摘要:给一个整数数列和正整数p,设这个数列中最大值M,最小值m,如果有M<=m*p,则称这个数列为完美数列,给一个p和一些正整数,从里面选择尽可能多的数,使他们构成一个完美数列,并输出最多可以选择的数字个数。分析:从左至右扫描序列对其中的每一个数a[i]。在[i+1,n-1]二分查找第一个超过a[i]*p 阅读全文
posted @ 2021-04-17 18:27 银发制御 阅读(92) 评论(0) 推荐(0)
摘要:为降低原来O(b)的时间复杂度,求解a^b%m,现在利用二分的思想,进行求解。a^b=a *a^(b-1) b为奇数ab=a(b/2)*a^(b/2) b为偶数在经过O(ln(b))级别的转换后,就可以将b变成0; 还要必须知道的是 a b…n%m=(a%m)(b%m)…(n%m)%m.另外%,/ 阅读全文
posted @ 2021-04-17 18:26 银发制御 阅读(73) 评论(0) 推荐(0)
摘要:#include<cstdio> const double eps = 1e-5; double f(double x) { return x * x; } double calSqrt() { double mid,left=1,right=2; while (right - left > eps 阅读全文
posted @ 2021-04-17 18:17 银发制御 阅读(118) 评论(0) 推荐(0)
摘要:(一)当题目的目的是查找“序列中是否存在满足某条件的元素”,使用此方法最好 A[]为严格递增序列,left为二分下界,right为二分上界,x为想要查询的数,左闭右闭区间[left,right]查找.查找成功返回位置,查找失败返回-1. int binarySearch(int A[], int l 阅读全文
posted @ 2021-04-17 18:12 银发制御 阅读(155) 评论(0) 推荐(0)
摘要:小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。 为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字 阅读全文
posted @ 2021-04-17 18:05 银发制御 阅读(60) 评论(0) 推荐(0)
摘要:读入N名同学的成绩,然后将获得某一给定分数的学生人数输出第一行给出不超过10^5的正整数,即学生总数;第二行给出N名学生的百分制的成绩,中间以空格分隔;第三行给出要查寻的分数个数K,随后是K个分数,中间以空格分隔;、 #include<cstdio> int hashTable[110] = { 0 阅读全文
posted @ 2021-04-17 18:03 银发制御 阅读(74) 评论(0) 推荐(0)
摘要:旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过 1 个字符的串。可用的字符包括字母 [a 阅读全文
posted @ 2021-04-17 17:40 银发制御 阅读(91) 评论(0) 推荐(0)
摘要:此问题是指在n*n的国际象棋棋盘上 ,放置n个皇后,使得这n个皇后均不在,同一行,同一列,同一对角线上,求出合法的方案的数目。 本题可以简单转化为就是求n的全排列中的数放在棋盘上使得这几组数,符合均不在同一对角线上。 index代表列数,正序排列。 #include<cstdio> #include 阅读全文
posted @ 2021-04-17 17:38 银发制御 阅读(126) 评论(0) 推荐(0)
摘要:旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。 输入格式: 输入在 2 行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过 80 个字符的串,由字母 A-Z(包括大、小写)、数字 0-9、 阅读全文
posted @ 2021-04-17 17:36 银发制御 阅读(140) 评论(0) 推荐(0)
摘要:1 #include<cstdio> 2 const int maxn = 100; 3 char S[maxn][5], temp[5]; 4 int hashTable[52 * 52 * 52 + 10] = {0}; 5 //将52个字母对应到52进制中去。 6 //将A--Z对应到0--2 阅读全文
posted @ 2021-04-17 17:34 银发制御 阅读(202) 评论(0) 推荐(0)
摘要:1 include<cstdio> 2 const int maxn = 11; 3 int n,p[maxn], hashTable[maxn] = { false };//hashtable[]为一个整型数组,但可以与真和非相互转换 4 void generatep(int index) { 5 阅读全文
posted @ 2021-04-17 17:31 银发制御 阅读(329) 评论(0) 推荐(0)