自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 算法-贪心-木棒加工问题

例如现在有长和重分别为(4,9),(5,2),(2,1),(3,5)和(1,4)的五根木棒,那么所需准备时间最少为2min,顺序为(1,4),(3,5),(4,9),(2,1),(5,2)。该机器在加工过程中需要一定的准备时间,是用于清洗机器,调整工具和模板的。(2) 在加工了一根长为l,重为w的木棒之后,接着加工一根长为l’(l≤l’),重为w’(w≤w’)的木棒是不需要任何准备时间的。但本题仅仅使用贪心算法是不够的,排序之后还要使用动态规划的算法。在表中,4,5和9的组序号是1,1和2的组序号是2。

2024-01-03 08:57:47 1250 1

原创 算法-递归-分解因式

给出一个正整数a,要求分解成若干个正整数的乘积,即a = a1 * a2 * a3 * ... * an,并且1 < a1 <= a2 <= a3 <= ... <= an,问这样的分解的种数有多少。注意到a = a也是一种分解。第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a (1 < a < 32768)。n行,每行输出对应一个输入。输出应是一个正整数,指明满足要求的分解的种数。

2023-12-19 21:13:40 589

原创 算法-搜索-闪避湖泊

农场可表示为N行M列的长方形网格,(1≤N≤100,1≤M≤100)。网格中的每个单元或是干的或是被淹没的,且恰有K个单元被水淹没,(1≤K≤N*M)。正如人们所希望的,湖泊是一个中间单元,它与其他的单元共享一条长边(不是角落)。任何与中间单元共享一条长边或者与连通单元共享一条长边的单元是一个连通单元,是湖泊的一部分。但保险公司仅根据他得农场中最大的“湖泊”的大小赔偿一个数额。每组的第1行有3个整数N,M和K。第2行到第K+1行,是整数R和C,表示被淹没的位置。对每组测试数据,输出有最大湖泊的单元的数目。

2023-12-12 16:45:00 229

原创 算法-搜索-信道分配

因为颜色不超过4种(根据四色原理,证明平面或球面上的任何地图的所有区域都至多可用四种颜色来着色,并使任何两个有一段公共边界的相邻区域没有相同的颜色。然而,需要仔细地选择每个转发器使用的频道,以使附近的转发器不彼此干扰。输入包含许多转发器网络图。例如,10个转发器的名称分别是A,B,C,…第一行描述与转发器A邻近的,第二行描述与B邻近的,直到描述完所有的转发器。对于每幅图(除了最后一个没有转发器),输出一行,是转发器不互相干扰所需的最少频道数。因为转发器位于水平面内,由相邻的转发器构成的网络图没有相交的线。

2023-12-12 16:45:00 293 2

原创 算法-搜索-数的划分

将整数n分成k份,且每份不能为空,任意两种分法不能相同(不考虑顺序)。每组数据由一行上的2个整数n,k构成(6

2023-12-09 13:23:42 398

原创 算法-动态规划-最大和

输入包含 T(<=30)个样例,在输入的第一行即是整数T。每个样例包含两行,第一行是整数 n(2<=n<=50000),第二行包含了n个整数: a1, a2, ..., an. (|ai| <= 10000)。提示:对于样例,我们选择{2,2,3,-3,4} 和 {5},进行想加得到函数d(A)的函数值。对于每个输入样例,输出一行,即如上定义函数d(A)的函数值。你的任务就是计算函数d(A)的函数值。输入量大,建议使用scanf();

2023-11-27 15:16:59 223

原创 算法-动态规划-最大子矩阵

输入的第一行是整数N,即表示要输入一个N * N的整数矩阵。接下来是N^2 个整数,每个整数之间被空格或者空行分开,这些整数即为矩阵中的数,按照列优先的顺序排列,即第一行整数从左至右输入,第二行从左至右输入…一个矩阵的和就是矩阵中所有元素求和,最大子矩阵就是所有子矩阵中和最大的那个字矩阵。因为取的是矩阵,肯定是竖着一列都取的,不可能这一列取到第i个元素,上一列取到第i-1个元素,这样我们就可以把要求的两行,两两加起来。这样求出的最大连续子序和是9,这个结果也就是这个矩阵对应的最大矩阵和。

2023-11-27 14:44:46 391 1

原创 算法-动态规划-Help Jimmy

将板子从上到下从1开始进行无重复的编号(越高的板子编号越小,高度相同的几块板子,哪块编号在前无所谓),那么,和上面两个子问题相关的变量就只有板子的编号,所以,本题目的“状态”就是板子编号,而一个“状态”对应的“值”有两部分,是两个子问题的解,即从该板子左端出发到达地面的最短时间,和从该板子右端出发到达地面的最短时间。每组测试数据的第一行是四个整数N,X,Y,MAX,用空格分隔。上面,h(i)就代表i号板子的高度,Lx(i)就代表i号板子左端点的横坐标,Rx(i)就代表i号板子右端点的横坐标。

2023-11-24 19:15:17 1044

原创 算法-动态规划-最长公共子序列

MaxLen(i, j)当然不会比MaxLen(i, j-1)和MaxLen(i-1, j)中的任何一个小,因此,MaxLen(i, j) = Max( MaxLen(i, j-1), MaxLen(i-1, j)) 必然成立。我们称序列Z = < z1, z2, ..., zk >是序列X = < x1, x2, ..., xm >的子序列当且仅当存在严格上升的序列< i1, i2, ..., ik >,使得对j = 1, 2, ... ,k, 有xij = zj。“值”就是MaxLen(i, j)。

2023-11-24 15:06:21 342

原创 算法-动态规划-最长上升子序列

对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 < ... <iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序列,如(1, 7), (3, 4, 8)等等。这个状态转移方程的意思就是,MaxLen(k)的值,就是在ak左边,“终点”数值小于ak,且长度最大的那个上升子序列的长度再加1。你的任务,就是对于给定的序列,求出最长上升子序列的长度。

2023-11-24 13:52:17 198

原创 算法-动态规划-数字三角形

从某个D(r,j)出发,显然下一步只能走D(r+1,j)或者D(r+1,j+1)。如果走D(r+1,j),那么得到的MaxSum(r,j) 就是MaxSum(r+1,j) + D(r,j);如果走D(r+1,j+1) ,那么得到的MaxSum(r,j) 就是MaxSum(r+1,j+1) + D(r,j)。基本思路:以D(r, j) 表示第r行第j个数字(r,j都从1开始算),以MaxSum(r, j) 代表从第r 行的第j个数字到底边的最佳路径的数字之和,则本题是要求MaxSum(1,1)。

2023-11-24 12:54:06 106

原创 算法-查找-棍子的膨胀

每个测试数据包含3个非负整数:棍子的初始长度,单位为毫米;加热前后的温差,单位为度;输入文件的最后一行为3个负数,代表输入结束,该测试数据不需处理。当一根长度为L的细长金属棍子加热n度后,它会膨胀到一个新的长度L’=(1+n*C)*L,其中C为该金属的热膨胀系数。当一根细长的金属棍子固定在两堵墙之间,然后加热,则棍子会变成圆弓形,棍子的原始位置为该圆弓形的弦,如图所示。对每个测试数据,输出金属棍子中心加热后偏离的距离,单位为毫米,保留小数点后3位有效数字。图为膨胀的金属棍子(上为膨胀前,下为膨胀后)

2023-11-05 14:21:50 262

原创 算法-查找-宝贝鱼

输入包含多达100,000个字典词条,然后是一个空行,然后是一条消息,这条消息包含多达100,000个单词。每个词条占一行,先是一个英语单词,然后是一个空格,然后是一个外文方言词。一个方言词在字典中出现不超过一次。消息是一个外文方言词序列,一个词占一行。每个词是一个最长为10的小写字母序列。你刚刚从奶牛搬到一个大城市里。这里的人说一种让人理解不能的外文方言。万幸,你有本字典可以帮助你理解。将消息的外文词翻译成英语,一个词一行。查不到的词应该翻译成“eh”。

2023-11-05 11:16:13 129

原创 算法-查找-电缆主

为了让比赛尽可能公正,裁判委员会的头头们决定:将比赛队员们平均地安置在集线器周围,距离集线器有一个相同的距离。第一行是两个整数N和K,N(1

2023-11-05 09:30:52 126

原创 算法-查找-半素数

素数的定义:对于一个大于1的正整数,如果除了1和它本身没有其他的正约数了,那么这个数就称为素数。例如,2,11,67,89是素数,8,20,27不是素数。本题的意思是输入一个整数N,2≤N≤1000000,判断N是不是半素数。半素数的定义:对于一个大于1的正整数,如果它可以被分解成2个素数的乘积,则称该数为半素数,例如6是一个半素数,而12不是。输入文件中有多个测试数据,每个测试数据包含一个整数N,2

2023-11-02 13:56:13 955 1

原创 算法-查找-赌徒

在排序的序列中,从后往前取赢家的序号i,这样计算的结果自然是赌注最大的赢家。三个赌徒的编号,至少有一个编号在赢家的前面(j),由于存在负数,另外两个赌徒的编号,就有可能在赢家编号的后面。每组赌注的数据第1行是一个整数n,1

2023-11-02 13:31:02 176 1

原创 算法-查找-字符串计数

对于每组测试数据,输出若干行,每行两个正整数,第一个数表示重复的次数,第二个数表示在此重复次数下有几种不同的字符串。最近再做这题时又有了新的思路,不过运行后的时间复杂度比上面的方法要长。先给定一个N,N≤100000,接着输入N个字符串。给出m个字符串,要求输出重复n次的字符串有几个。

2023-11-02 13:20:32 174 1

原创 算法-排序-俄罗斯套娃

这样的规则使你的好友变得很烦躁,假设娃娃的个数为n,如果交换娃娃的次数超过n*(n - 1) / 2 - 1次,那么你的好友就会烧掉这些娃娃。但是她很珍惜这些娃娃。现在她向你询问,她是否不会烧掉这个俄罗斯套娃?是一个按照大小顺序可以嵌套在一起的玩具。如果好友不会烧掉娃娃输出"YES"(没有引号),反之输出"NO"(没有引号)。接下来n个数Si,Si表示当前位置娃娃大小。(Si不一定小于n)。1.娃娃的大小必须是从小到大排列好的。2.你每次只可以交换相邻的两个娃娃。一个整数n(n <= 1000)

2023-10-21 16:29:08 186 1

原创 算法-排序-组合数字

要注意:A=“321”,B=“32”,按照标准的字符串比较规则因为A>B,所以A+B>B+A ,而实际上A+B<B+A(即 "32132’"< "32321"),所以需要自己写一个比较函数,只要有A+B>B+A就说明A排在B的前面。现在给你n个正整数,a1,a2,a3........an,请你把它们首尾连接到一起,组成一个最小的正整数(可能会超出long long)。第二行有 n 个整数,表示给出的 n 个整数 ai(1 <= n <= 20,1 <= ai <= 1e9)。一个正整数,表示最小的整数。

2023-10-21 15:53:12 265 1

原创 算法-排序-体重排序

节目录制那天,你准备让一些使用Kevorkian博士减肥计划的节食者上台秀一下。你准备按他们的体重的递减顺序来安排他们出场的先后顺序。问题是他们报名时只提供了以下信息:姓名,节食的天数,节食前的体重。你要根据他们节食的天数来计算他们现在的体重。作为一台很受欢迎的脱口秀节目的主持人,你正在做一期关于节食的节目。接下来为节食者列表:包含1~10行,每行描述一名节食者,包括姓名、节食的天数和节食前的体重。对每个测试数据,根据各节食者现在体重的递减顺序列出节食者的名字,每个节食者的名字占一行。第1行为START;

2023-10-21 10:58:51 133 1

原创 算法-排序-DNA排序

例如,在字符序列DAABEC中,逆序数为5,因为字符D比它右边的4个字符大,而字符E比它右边的1个字符大。字符序列AACEDGG只有1个逆序,即E和D,它几乎是已经排好序的,而字符序列“ZWQM”有6个逆序,它是最大程度的无序,即有序序列的逆序。每组测试数据的格式为:第1行为2个整数,正整数n(0 < n

2023-10-21 10:01:51 626 1

原创 算法-排序-快乐的蠕虫

先按x坐标(即行坐标)从小到大的顺序排序,x坐标相同,再按y坐标(即列坐标)从小到大的顺序进行排序。排序以后,如果前后2个位置的x坐标相同(表示这两块石头在同一行),且y坐标相差大于2,则表示其为蠕虫能躺着睡觉的位置。每个测试数据的第1行为3个整数:m,n和k(0

2023-10-21 09:08:23 361 1

原创 算法-排序-单词重组

对输入文件中每个被打乱字母顺序的单词w,按字母顺序输出字典中所有满足以下条件的单词的列表:通过调整单词w中的字母顺序,可以变成字典中的单词。列表中的每个单词占一行。游戏的目标是猜谜,为了找出答案中缺少的字母,有必要对4个单词的字母顺序重新调整。所有单词,包括字典中的单词和被打乱字母顺序的单词,都只包含小写英文字母,并且至少包含一个字母,至多包含6个字母。字典中的单词不一定是按顺序排列的,但保证字典中的单词是唯一的。(3) 一个或多个被打乱字母顺序的“单词”,每个单词占一行,你必须整理这些字母的顺序;

2023-10-21 09:02:38 240 1

原创 算法-排序-英文姓名排序

每个测试数据的第1行是一个正整数N(0 < N < 100),表示该测试数据中英文姓名的数目;接下来有N行,每行为一个英文姓名,姓名中允许出现的字符有大小写英文字母、空格和点号(.),每个英文姓名长度至少为2、但不超过50.N=0表示输入结束。对输入文件中的每个测试数据,输出排序后的姓名。排序方法为:先按姓名长度从长到短的顺序排序,对长度相同的姓名,则按字母顺序排序。在汉语里,对汉语姓名可以按拼音排序,也可以按笔画顺序排序。在英语里,对英语姓名主要按字母顺序排序。本题要求给定的一组英文姓名按长短顺序排序。

2023-10-21 08:55:42 567 1

原创 JDBC初步了解

本质上,JDBC的作用和图形化客户端的作用相同,都是发送SQL操作数据库。在项目中引入数据库驱动jar包(jar文件:针对class文件的压缩格式包含了多个带包的class文件,类似于普通文件打包的zip、rar),下面主要介绍idea的方法。阅读异常日志挑错是最有效的,JDBC的异常其实还是非常固定的,就那么几种:类加载问题、数据库用户名密码错误、sql语法错误、绑定数据错误、获取数据错误…分析异常最高效的办法是阅读异常日志,根据异常日志的信息,可以快速定位问题的位置、问题的原因设置是问题的解决方案。

2023-05-07 08:25:46 120

原创 MySQL基础语法

3.1.创建数据库(1)创建数据库的几种方式CREATE DATABASE 数据库名;//创建数据库-- 创建一个叫db1的数据库CREATE DATABASE IF NOT EXISTS 数据库名;//判断数据库是否存在,不存在则创建数据库CREATE DATABASE 数据库名 CHARACTER SET 字符集;//创建数据库并指定字符集3.2查看数据库-- 查看所有的数据库-- 查看单个数据库的创建信息3.3修改数据库//将数据库的字符集修改为gbk MySQL命令。

2023-04-21 20:00:01 159

原创 servlet+mvc,jar包介绍及如何导入使用

1.什么是jar包?jar包就是 Java Archive File,顾名思义,它的应用是与 Java 息息相关的,是 Java 的一种文档格式,是一种与平台无关的文件格式,可将多个文件合成一个文件。jar 包与 zip 包非常相似——准确地说,它就是 zip 包,所以叫它文件包。

2023-04-15 09:05:31 924 1

原创 JAVAIO

Java 把 Input输入流 和 Output 输出流,统称为IO流。它的核心就是对文件的操作,对于字节 或字符类型的输入和输出。流的概念和作用:流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在设备间传输称之为流。流的本质是数据传输,根据数据传输的特性将流区分为各种类,方便更直观的进行数据操作。阻塞型IO和非阻塞型IO(NIO):阻塞型IO在读取数据时,如果数据未到达,会一直阻塞到读取到数据为止,所以称为阻塞型IO,在高并发的环境下性能不佳。

2023-04-06 20:49:26 345 1

原创 Java异常类和常用类,容器,泛型

异常类分两大类型:Error类代表了编译和系统的错误,不允许捕获;Exception类代表了标准Java库方法所激发的异常。Exception类还包含运行异常类Runtime_Exception和非运行异常类Non_RuntimeException这两个直接的子类。运行异常类对应于编译错误,它是指Java程序在运行时产生的由解释器引发的各种异常。运行异常可能出现在任何地方,且出现频率很高,因此为了避免巨大的系统资源开销,编译器不对异常进行检查。所以Java语言中的运行异常不一定被捕获。

2023-03-31 18:47:30 668 1

原创 idea基本使用及Java基础

idea基本使用及Java基础(面向对象三大特性)

2023-03-24 16:11:30 1624 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除