
数学与算法
文章平均质量分 75
分享数学与算法知识
算法小生Đ
算法小生
展开
-
图的遍历(BFS与DFS)
输入:建立图的存储结构:顶点和边(弧),例:无向图G的顶点V={A,B,C,D,E,F,G,H},边E={(A,B),(A,C),(B,D),(B,E),(C,F),(C,G),(D,H),(E,H),(F,G)}(G具有8个顶点和9条边)输出:深度优先遍历的顶点序列(按照存储结构):A,B,D,H,E,C,F,G(或者其它的不同顺序的序列)import java.util.LinkedL原创 2016-11-19 16:14:30 · 799 阅读 · 0 评论 -
折半查找
import java.util.Arrays;import java.util.Scanner;public class bisearch { //a为待查找的数组,b为要查找的数字 private static String search(int[] a,int b){ int begin=0,end=a.length; if(ba[end-1]) return原创 2016-12-04 12:38:05 · 448 阅读 · 0 评论 -
分形【分治递归】
问题描述:分形,具有以非整数维形式充填空间的形态特征。通常被定义为“一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状”,即具有自相似的性质。一个分形块可以定义为如下内容:度数为1的分形块表示为: X度数为2的分形块表示为: X X XX X如果用B(n-1)表示度数为n-1的分形块,那么度数为n的分形块可以递归地定义为原创 2017-05-31 17:31:18 · 1861 阅读 · 0 评论 -
5-3 列车调度
5-3 列车调度 (25分)火车站的列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少原创 2017-03-05 14:48:28 · 1393 阅读 · 0 评论 -
二叉排序树的插入创建与查找
import java.util.Scanner;public class BinarySortTree{ private static int flag=0; //定义结点 public static class Node{ private int data; private Node left=null; private Node right=null;原创 2016-12-04 12:34:46 · 1950 阅读 · 0 评论 -
5-2 列车厢调度 (25分)
1 ====== <--移动方向 / 3 ===== \ 2 ====== -->移动方向大家或许在某些数据结构教材上见到过“列车厢调度问题”(当然没见过也不要紧)。今天,我们就来实际操作一下列车厢的调度。对照上方的ASCII字符图,问题描述如下:有三条平行的列车轨道(1、2、3)以及1-3和2-3两段连接原创 2017-03-05 11:21:13 · 1711 阅读 · 0 评论 -
表达式求值
5-9 表达式转换 (25分)算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间。请设计程序将中缀表达式转换为后缀表达式。输入格式:输入在一行中给出不含空格的中缀表达式,可包含+、-、*、\以及左右括号(),表达式不超过20个字符。输出格式:在一行中输出转换后的后缀表达式,要求不同对原创 2017-03-04 11:56:22 · 355 阅读 · 0 评论 -
数字分类
题目描述给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...;A3 = 被5除后余2的数字的个数;A4 = 被5除后余3的数字的平均数,精确到小数点后1位;A5 = 被5除后余4的数字中最大数字。输入描述:每个输入包原创 2017-01-22 14:05:18 · 408 阅读 · 0 评论 -
福尔摩斯的约会
大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母'D',代表星期四;第2对相同的字符是'E',那是第5个英文字母,代表一天里的第1原创 2017-05-26 09:37:18 · 360 阅读 · 0 评论 -
数素数
题目描述令Pi表示第i个素数。现任给两个正整数M 输入描述:输入在一行中给出M和N,其间以空格分隔。输出描述:输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。输入例子:5 27输出例子:11 13 17 19 23 29 31 37 41 4347 53 59 61 67 71 73 79 8原创 2017-04-01 13:31:01 · 398 阅读 · 0 评论 -
锤子剪刀布
题目描述大家应该都会玩“锤子剪刀布”的游戏:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入描述:输入第1行给出正整数N(输出描述:输出第1、2行分别给出甲、乙的胜、平、负次数,数字间以1个空格分隔。第3行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1个空格。如果解不唯一,则输出按字母序最小的解。输入例子原创 2017-05-26 09:50:46 · 517 阅读 · 0 评论 -
德才论
题目描述宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”现给出一批考生的德才分数,请根据司马光的理论给出录取排名。输入描述:输入第1行给出3个正整数,分别为:N(5),即考生总数;L(>=60),为录取最低分数线,即德分和才分均不低于L的考原创 2017-05-26 09:41:39 · 699 阅读 · 0 评论 -
算法提高 盾神与条状项链
算法提高 盾神与条状项链 时间限制:1.0s 内存限制:256.0MB 问题描述 有一天,盾神捡到了好多好多五颜六色的珠子!他心想这些珠子这么漂亮,可以做成一条项链然后送给他心仪的女生~于是他用其中一些珠子做成了长度为n的项链。当他准备把项链首尾相接的时候,土方进来了。 “哇这么恶心的项链你也做得出来!!!” 盾神自知审美不是他的长原创 2016-12-18 18:51:12 · 805 阅读 · 0 评论 -
算法提高 8-1因式分解
算法提高 8-1因式分解 时间限制:10.0s 内存限制:256.0MB 问题描述 设计算法,用户输入合数,程序输出若个素数的乘积。例如,输入6,输出2*3。输入20,输出2*2*5。样例 与上面的样例输入对应的输出。 例:数据规模和约定 输入数据中每一个数在int表示范围内。imp原创 2016-12-09 20:19:02 · 2510 阅读 · 0 评论 -
历届试题 连号区间数
历届试题 连号区间数 时间限制:1.0s 内存限制:256.0MB 问题描述小明这些天一直在思考这样一个奇怪而有趣的问题:在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连原创 2016-12-17 17:14:52 · 419 阅读 · 0 评论 -
递归求二项式系数值
算法训练 6-1 递归求二项式系数值 时间限制:10.0s 内存限制:256.0MB 问题描述样例输入一个满足题目要求的输入范例。3 10样例输出与上面的样例输入对应的输出。数据规模和约定 输入数据中每一个数的范围。 例:结果在int表示时不会溢出。import原创 2016-11-13 17:26:59 · 504 阅读 · 0 评论 -
算法提高 新建Microsoft Word文档
算法提高 新建Microsoft Word文档 时间限制:1.0s 内存限制:256.0MB 问题描述 L正在出题,新建了一个word文档,想不好取什么名字,身旁一人惊问:“你出的题目叫《新建Microsoft Word文档》吗?”,L大喜,一拍桌子,说:“好,就叫这个名字了。” 仔细观察,当你新建一个word文档时,会得到一个名为“新建原创 2016-12-10 15:45:11 · 882 阅读 · 0 评论 -
P1103
算法训练 P1103 时间限制:1.0s 内存限制:256.0MB 编程实现两个复数的运算。设有两个复数 和 ,则他们的运算公式为: 要求:(1)定义一个结构体类型来描述复数。 (2)复数之间的加法、减法、乘法和除法分别用不用的函数来实现。 (3)必须使用结构体指针的方法把函数的计算结果返回。 说明:用户输入:运原创 2016-11-13 17:32:17 · 360 阅读 · 0 评论 -
算法提高 周期字串
算法提高 周期字串 时间限制:1.0s 内存限制:256.0MB 问题描述 右右喜欢听故事,但是右右的妈妈总是讲一些“从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事,讲的什么呢?从前有座山……”这样循环的故事来搪塞右右。 我们定义,如果一个字符串是以一个或者一个以上的长度为k的重复字符串所连接成的,那么这个字符串就叫做周期为k的串。原创 2016-12-18 21:33:36 · 799 阅读 · 0 评论 -
身份证号码升级
算法提高 身份证号码升级 时间限制:1.0s 内存限制:256.0MB 问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位。(18位身份证号码简介)。升级方法为: 1、把15位身份证号码中的年份由2位(7,8位)改为四位。 2、最后添加一位验证码。验证码的计算方案: 将前 17 位分别乘以对应系数 (7原创 2016-12-10 16:53:07 · 992 阅读 · 0 评论 -
历届试题 矩阵翻硬币
历届试题 矩阵翻硬币 时间限制:1.0s 内存限制:256.0MB 问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵。 随后,小明对每一个硬币分别进行一次 Q 操作。 对第x行第y列的硬币进行 Q 操作的定义:将所有第 i*x 行,第 j*y 列的硬币进行翻转。 其中i和j为任意使操作可行的正整数,行号和列号原创 2016-12-12 21:06:13 · 750 阅读 · 0 评论 -
历届试题 兰顿蚂蚁
历届试题 兰顿蚂蚁 时间限制:1.0s 内存限制:256.0MB 问题描述 兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种。 平面上的正方形格子被填上黑色或白色。在其中一格正方形内有一只“蚂蚁”。 蚂蚁的头部朝向为:上下左右其中一方。 蚂蚁的移动规则十分简单: 若蚂蚁在黑格,右转9原创 2016-12-13 17:51:21 · 410 阅读 · 0 评论 -
历届试题 核桃的数量
历届试题 核桃的数量 时间限制:1.0s 内存限制:256.0MB 问题描述小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:1. 各组的核桃数量必须相同2. 各组内必须能平分核桃(当然是不能打碎的)3. 尽量提供满足1,2条件的最小数原创 2016-11-16 13:55:09 · 434 阅读 · 0 评论 -
算法提高 上帝造题五分钟
算法提高 上帝造题五分钟 时间限制:1.0s 内存限制:256.0MB 问题描述 第一分钟,上帝说:要有题。于是就有了L,Y,M,C 第二分钟,LYC说:要有向量。于是就有了长度为n写满随机整数的向量 第三分钟,YUHCH说:要有查询。于是就有了Q个查询,查询向量的一段区间内元素的最小值 第四分钟,MZC说:要有限。于是就有了原创 2016-12-10 16:04:58 · 499 阅读 · 0 评论 -
根据先序中序序列求后序序列
package BinaryTree;import java.util.Scanner;public class PreMidTree { private static StringBuilder sb = new StringBuilder(); public static void calTree(int[] pre, int[] mid) { if (mid.length原创 2017-03-11 10:33:25 · 866 阅读 · 0 评论 -
是否完全二叉搜索树
5-2 是否完全二叉搜索树 (30分)将一系列给定数字顺序插入一个初始为空的二叉搜索树(定义为左子树键值大,右子树键值小),你需要判断最后的树是否一棵完全二叉树,并且给出其层序遍历的结果。输入格式:输入第一行给出一个不超过20的正整数N;第二行给出N个互不相同的正整数,其间以空格分隔。输出格式:将输入的N个正整数顺序插入一个初始为空的二叉搜索树。在第一行原创 2017-03-14 17:48:25 · 727 阅读 · 0 评论 -
根据后序中序序列构建二叉树,按层次打印
import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;public class MidAfterTreeCalLevel { /* * 7 *2 3 1 5 7 6 4(后序) *1 2 3 4 5 6 7(中序) *打印层次遍历:4 1 6 3 5 7 2 *基本思路:后序序原创 2017-03-11 10:31:03 · 707 阅读 · 0 评论 -
根据后序和中序遍历输出先序遍历
本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果。输入格式:第一行给出正整数NN(\le 30≤30),是树中结点的个数。随后两行,每行给出NN个整数,分别对应后序遍历和中序遍历结果,数字间以空格分隔。题目保证输入正确对应一棵二叉树。输出格式:在一行中输出Preorder:以及该树的先序遍历结果。数字间有1个空格,行末不得有多余空格。原创 2017-03-10 20:51:31 · 1304 阅读 · 0 评论 -
最长对称子串(动态规划解法)
5-12 最长对称子串 (25分)对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11。输入格式:输入在一行中给出长度不超过1000的非空字符串。输出格式:在一行中输出最长对称子串的长度。输入样例:Is PAT&TAP symmetri原创 2017-03-12 12:47:51 · 4636 阅读 · 0 评论 -
先序序列建立一颗二叉树及哈夫曼树
输入(在空子树处添加空格字符或“*”的二叉树,本例中以“*”判断空子树)先序序列(设每个元素是一个字符),按先序遍历的顺序,建立二叉链表,并将该二叉链表根结点指针赋给root 。如果输入字符不是“*”,则建立一个新结点,然后建立其左子树和右子树;如果是空格则返回,继续进行下一次操作。输入:一个包含空子树符号的先序序列,例如:序列ABC**DE**F**G**输出:建立一颗二叉链表表示的原创 2016-11-08 19:49:57 · 18066 阅读 · 2 评论