欧拉筛法求素数:
摘要:欧拉筛法求素数又称为线性筛法求素数,是一种将求一定范围内的素数的时间复杂度控制在O(n)的一种算法,它跟埃拉特斯尼筛法求素数很像,做了一定的改进,我们知道,埃拉特斯尼筛法之所以没有达到线性筛的水平是因为它对于同一个合数,要重复操作他的质因子个数次,这是很浪费的,而欧拉筛法求素数则去掉了重复操作,它在
阅读全文
导弹拦截问题(DP+贪心)
摘要:1. 拦截导弹(Noip1999) 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导
阅读全文
数据结构
摘要:图的遍历 深度优先搜索(DFS): 深度优先搜索(Depth First Search–DFS)遍历类似树的先序遍历,是树的先序遍历的推广。 设初始状态时图中的所有顶点未被访问,则: ⑴ :从图中某个顶点vi出发,访问vi;然后找到vi的一个邻接顶点vi1 ; ⑵:从vi1出发,深度优先搜索访问和v
阅读全文
动态规划步骤
摘要:动态规划的设计都有着一定的模式,一般要经历以下几个步骤: (1)划分阶段 按照问题的时间或空间特征,把问题划分为若干个阶段。在划分阶段时,注意划分后的阶段一定是有序的或者是可排序的,否则问题就无法求解。 (2)确定状态和状态变量 将问题发展到各个阶段时所处于的各种客观情况用不同的状态表示出来。当然,
阅读全文
数字三角形/数塔问题(DP入门题)
摘要:有形如下图所示的数塔,从顶部出发,在每一结点可以选择向左走或是向右走,一起走到底层,要求找出一条路径,使路径上的值最大。 样例输入: 5 13 11 8 12 7 26 6 14 15 8 12 7 13 24 11 样例输出: 86(13 8 26 15 24) include include i
阅读全文
树的高度
摘要:题目描述 现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度 输入描述: 输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n 1)组成, 下面是n 1行,每行有两个整数,第一个数表示父节点的编号,第二个数表示子节点的编号 输出描述:
阅读全文
869. 重新排序得到 2 的幂
摘要:从正整数 N 开始,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零。 如果我们可以通过上述方式得到 2 的幂,返回 true;否则,返回 false。 示例 1: 输入:1 输出:true 示例 2: 输入:10 输出:false 示例 3: 输入:16 输出:true 示例
阅读全文
说反话
摘要:1009 说反话 (20)(20 分) 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没
阅读全文
A除以B
摘要:1017 A除以B (20)(20 分) 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B Q + R成立。 输入格式: 输入在1行中依次给出A和B,中间以1空格分隔。 输出格式: 在1行中依次输出Q和R,中间以1空格分隔。 输入样例:
阅读全文
常见排序的时间复杂度
摘要:常见的几种排序算法复杂度如下: 方式: 平均 最坏 最好 插入 n^2 n^2 n 希尔 n^1.3 / / 冒泡 n^2 n^2 n 快速 nlogn n^2 nlogn 选择 n^2 n^2 n^2 堆排 nlogn nlogn nlogn 归并 nlogn nlogn nlogn 基数 d(n
阅读全文
反转链表
摘要:1025 反转链表 (25)(25 分) 给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4;如果K为4,则输出应该为4→3→2→1→5→6,即最后不到K个元素不反转。 输入格式: 每个输入包含1个测试用例
阅读全文
快速排序
摘要:具体方法: 1)设置两个变量i、j,排序开始的时候:i=0,j=N 1; 2)以第一个数组元素作为关键数据,赋值给key,即key=A[0]; 3)从j开始向前搜索,即由后开始向前搜索(j ),找到第一个小于key的值A[j],将A[j]和A[i]互换; 4)从i开始向后搜索,即由前开始向后搜索(i
阅读全文
7-8 删除字符串中的子串(20 分)
摘要:7 8 删除字符串中的子串(20 分) 输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。 输入格式: 输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。 输出格式: 在一行中输出删除字符串S1中出现的所有子串S2后的
阅读全文
字符串排序
摘要:7-8 字符串排序(20 分) 本题要求编写程序,读入5个字符串,按由小到大的顺序输出。 输入格式: 输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。 输出格式: 按照以下格式输出排序后的结果: After sorted: 每行一个字符串 输入样例:
阅读全文
螺旋方阵
摘要:7-9 螺旋方阵(20 分) 所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。 输入格式: 输入在一行中给出一个正整数N(<10)。 输出格式: 输出N×N的螺旋方阵。每行N个数字,每个数字占3位。
阅读全文
整除光棍
摘要:7-7 整除光棍(20 分) 这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输
阅读全文
高精度乘法
摘要:注释:高精度的大体框架,方法可以应用到题里面。
阅读全文