自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

★探梦少年☆的博客

从前那个少年还是最初那张脸

  • 博客(275)
  • 资源 (2)
  • 收藏
  • 关注

原创 Javaweb实训——阿婆私房菜

阿婆私房菜两个周的时间,,后台页面基本上老师都给了,可能是时间不够的原因,,本次得了良好的等级,自己反思了一下,根本没有拓展功能,只是加了一点背景,,也不算冤,通过这次实训,也认识到了自己的不足,在web的学习上不够深入,学的很肤浅,,后续会加强学习,毕竟这门技术不像一些课程那样学完了就可以扔了,以后可能用得到。这个基本的功能都实现了,简单记录一下吧。。。本项目为JavaWeb课程实训教学项目(阿婆私房菜),实现在Web环境下的商城系统,技术上涉及Servlet、JSP、EL表达...

2020-07-26 13:22:36 1227 1

原创 并查集总结

什么叫并查集?  并查集(union-find set)是一种用于分离集合操作的抽象数据类型。它所处理的是“集合”之间的关系,即动态地维护和处理集合元素之间复杂的关系,当给出两个元素的一个无序对(a,b)时,需要快速“合并”a和b分别所在的集合,这其间需要反复“查找”某元素所在的集合。“并”、“查”和“集”三字由此而来。在这种数据类型中,n个不同的元素被分为若干组。每组是一个集合,这种集合叫做分离集合(disjoint set)。并查集支持查找一个元素所属的集合以及两个元素各自所属的集合的合并。适用

2020-07-07 10:30:07 211

原创 好题汇总

搜索bfs好题目:双端bfs:N - Find a way 好博客:BFS学习总结Floyd算法好博客:Floyd算法好题目:六度分离HDU 1869 六度分离(简单Floyd)传递闭包POJ 1975 Median Weight Bead(Floyd传递闭包)并查集好博客:并查集好题目:POJ 1456 Supermarket(贪心算法,可...

2019-09-26 21:35:14 133

原创 插入排序及其性能分析

概述插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。算法思想从第二个元素开始,每次从这个元素之前的所有元素当中找出比这个元素小的地方,然后让这一个位置的后面元素都后移,最后这个元素的后面一个位置就是这个元素应该插入的位置。图画演示代码实现public static void main(String[] args) { int [] num= {10,5

2022-01-15 22:45:46 439

原创 冒泡排序及其性能分析

冒泡排序基本思想图画演示原理分析代码实现时间复杂度稳定性基本思想从头开始,每次交换两个相邻元素的值,把最大或者最小的放在最后面,然后再对于前面n-1个值这样操作,每次都有一个最终的元素被放在它的最终位置,就像水面上在不断的冒泡一样,因此得名为冒泡排序。图画演示原理分析先开启第一轮排序将第一、第二个元素进行比较,大的元素放在第二个元素位置上,然后再拿第二个元素和第三个元素进行比较,直到倒数第二个元素和最后一个元素相比较,将大的元素放在最后一个元素位置上,这样就实现了最大的元素被排在了最后。再开启

2022-01-15 20:44:50 419

原创 选择排序及其性能分析

引理:选择排序属于内部排序的一种,从预排序的序列中,按照指定的规则选出某一元素(最大或者最小)到最前面,直到最后一个元素为止。思想:和冒泡排序大体差不多,冒泡排序是两两比较,选择是针对于整体的,从第二个元素开始,每次选择一个最大或者最小的元素到最前面,直至最后一个元素。思路分析图:代码实现:public static void main(String[] args) { int [] num= {10,5,20,30,15,50,40,60}; for(int i=

2022-01-15 15:09:11 286

原创 Java的输入输出(含快速输入输出)

目录1.主类的名字2.输入输出2.1输入2.2输出2.快速输入输出2.2 使用BufferedReader和BufferedWriter实现快速输入输出1.主类的名字由于在蓝桥杯当中主类的名字必须是Main,因此也可以在平时的练习当中习惯性的写成Main。例如下:public static void main(String[] args){}2.输入输出2.1输入(1)使用Scanner进行输入需要定义一个可以在控制台接收键盘输入数据的Scanner对象Scanner sc=new S

2021-04-09 21:52:30 773

原创 2020-10-24

大三开学两个月时间了,应该适当的规划一下自己以后的方向了。从大二下学期退了ACM队,说实话,充满了不舍和无奈,训练了一年多,还没正式参加过比赛,从平时刷题、打cf的过程中也能找到乐趣,由于疫情原因,省赛也无法参加,对于自己的状态也很失望,就干脆退出了,客观因素影响,主要还是自己做的不够好,没能给自己一个坚持下去的理由,但内心还是存在不甘的,,对于ACM还是喜欢的,但是时间很无奈,以后不管是考研还是工作,能取得一些成果可以作为一些加分项,所以也需要做一些别的比赛,,但含金量是无法和ACM相比的,目前只能这

2020-10-24 00:22:12 134

原创 思维训练3

A排序,求出相邻元素的差,如果有大于一的就不行。#include <bits/stdc++.h>using namespace std;int a[100],b[100];int main(){ int t,n; cin>>t; while(t--) { int cnt=0,sum=0; cin>>n; for(int i=1;i<=n;i++)

2020-08-06 23:43:41 153

原创 Java 大数

如果基本的整数和浮点数精度不能够满足需求,看到给的数大于10^18,那么可以使用java.math 包中的两个很有用的类:Biglnteger 和 BigDecimaL 这两个类可以处理包含任意长度数字序列的数值。Biglnteger类实现了任意精度的整数运算, BigDecimal 实现了任意精度的浮点数运算。1. java.math.BigInteger常用操作:• Biglnteger add(Biglnteger other) 返回这...

2020-07-25 17:56:26 180

原创 矩阵乘法

问题描述  输入两个矩阵,分别是m*s,s*n大小。输出两个矩阵相乘的结果。输入格式  第一行,空格隔开的三个正整数m,s,n(均不超过200)。  接下来m行,每行s个空格隔开的整数,表示矩阵A(i,j)。  接下来s行,每行n个空格隔开的整数,表示矩阵B(i,j)。输出格式  m行,每行n个空格隔开的整数,输出相乘後的矩阵C(i,j)的值。样例输入2 3 21 0 -11 1 -30 31 23 1样例输出-3 2-8 2提示矩阵C应该是m行n列,其

2020-07-24 18:00:43 286

原创 最大最小公倍数

点这里【思路】三个数的最大最小公倍数,就是找三个数要两两互质,,如果这个数小于2,直接就是它本身了;如果为奇数,就是,,如果为偶数,还要看是否能被3整除,如果不能,,n和(n-2)都是偶数,往前推一个n-3,就是,,如果能被3整除,,6就是一个很好例子,3和6有公约数3,不是1,,这时就选择不开longlong错误。。#include <bits/stdc++.h>using namespace std;typedef long long ll;int main(){

2020-07-24 17:28:24 231

原创 Anagrams

点这里思路:先比较两个字符串的长度,不相等直接输出N,,;都转化成小写字母,再把两个字符串从小到大排序,最后用strcmp函数比较,如果为0输出Y,否则输出N。#include <bits/stdc++.h>using namespace std;char a[100],b[100],t;int main(){ ios::sync_with_stdio(false); int i,j,len1,len2; cin>>a; cin&

2020-07-24 10:27:51 103

原创 安慰奶牛

点我数据有问题,方法对了交上没问题。一个最小生成树的题。安慰时间Ci是点的权值,Li是边的权值。题目还要选定一个点作为往返点,任意选择节点遍历,发现只有起始点是被经过次数最多的,那么要满足题目要求时间最小,即选择权值最小的节点作为起点,要往返,经过每个农场都要花费c【i】的时间和奶牛交谈,所以此条边为边权×2加上点权作为Kruskal的权重,最后加上一次起点权值,就是最小生成树的权值。#include<bits/stdc++.h>#define inf 0x3f3f3f3fus

2020-07-23 09:52:01 93

原创 思维入门2

A写出规律发现是(n+1)/2#include <bits/stdc++.h>using namespace std;int main(){ ios::sync_with_stdio(false); int n,t; cin>>t; while(t--) { cin>>n; cout<<(n+1>>1)<<endl; } return

2020-07-08 22:29:19 107

原创 写web代码时eclipse中常用的快捷键

Eclipse => Window => Preference => General => Keys在这里面可以根据自己的需求设置快捷键 。下面几个是目前我知道的,欢迎大佬们评论,谢谢!选择一行代码:鼠标左键连续点击三下即可。换行:shift+enter 不必移动到这一行的结尾即可换到下一行。浏览各种标签:ctrl+o调整标签快速对齐:ctrl+shift+f补全声明变量:ctrl+1修改一个页面中所有这个选中变量的名称:c.

2020-07-08 11:05:01 430

原创 天天向上

问题描述  A同学的学习成绩十分不稳定,于是老师对他说:“只要你连续4天成绩有进步,那我就奖励给你一朵小红花。”可是这对于A同学太困难了。于是,老师对他放宽了要求:“只要你有4天成绩是递增的,我就奖励你一朵小红花。”即只要对于第i、j、k、l四天,满足i<j<k<l并且对于成绩wi<wj<wk<wl,那么就可以得到一朵小红花的奖励。现让你求出,A同学可以得到多少朵小红花。输入格式  第一行一个整数n,表示总共有n天。第二行n个数,表示每天的成绩wi。输出格

2020-07-08 00:14:11 253

原创 思维入门1

A. 小 B 的异或小 B 收到了一串数字,其中包含nn个数字。寄件人想知道这nn个数的异或结果,但小 B 并不会求,就把这个问题转交给你。但他为了使你求得的更方便,于是运用魔法把这nn个数都变成了11。现在,你需要求出这nn个11异或后的结果。关于异或:下表为aa与bb的异或结果:aa bb a \oplus ba⊕b 11 00 11 11 11 00 00 00 00 00 ...

2020-07-01 21:57:13 707

原创 访问者模式

访问者模式访问者模式的目的是封装一些施加于某种数据结构元素之上的操作,一旦这些操作需要修改的话,接受这个操作的数据结构可以保持不变。为不同类型的元素提供多种访问操作方式,且可以在不修改原有系统的情况下增加新的操作方式,这就是访问者模式的模式动机。案例:学校领导访问老师和学生源代码:package Visitor;import java.util.ArrayList;import java.util.List;public class Visitor { public sta.

2020-06-14 14:08:17 144

原创 命令模式

命令模式简介:它将请求发送者,请求接收者解耦,可以让相同的发送者对应不同的接收者。命令模式定义:将一个请求封装成一个对象,从而通过不同的请求将客户端参数化,实现了请求排队,记录请求日志,可撤销操作案例:烧烤摊和烧烤店源代码:package Command;public class Command { public static void main(String[] args) { // TODO Auto-generated method stub Barbecuer bo

2020-06-13 13:36:00 149

原创 职责链模式

又迭代器模式。迭代器模式(Iterator Pattern):提供一种方法来访问聚合对象,而不用暴露这个对象的内部表示,其别名为游标(Cursor)。迭代器模式是一种对象行为型模式。案例:加薪申请、上报与审批源代码:package Iterator;public class Iterator { public static void main(String[] args) { // TODO Auto-generated method stub Manager xz1 =ne.

2020-06-13 12:54:12 146

原创 做家务

Farmer John's family pitches in with the chores during milking, doing all the chores as quickly as possible. At FJ's house, some chores cannot be started until others have been completed, e.g., it is impossible to wash the cows until they are in the stalls

2020-06-07 23:11:38 180

原创 组合模式

组合模式允许你将对象组合成树形结构来表现”部分-整体“的层次结构,使得客户以一致的方式处理单个对象以及对象的组合。组合模式实现的最关键的地方是——简单对象和复合对象必须实现相同的接口。这就是组合模式能够将组合对象和简单对象进行一致处理的原因。组合部件(Component):它是一个抽象角色,为要组合的对象提供统一的接口。 叶子(Leaf):在组合中表示子节点对象,叶子节点不能有子节点。 合成部件(Composite):定义有枝节点的行为,用来存储部件,实现在Component接口中的有关操作,如增

2020-06-05 22:02:06 94

原创 备忘录模式

备忘录模式属于行为型模式,它通过在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。备忘录模式用户保存对象的状态,并且以后恰当时间可以再次恢复到此状态。即可以保存和获取该对象的状态。实例:打Boss 存档读档源代码:package org.zangyu.Memento;public class Memento { public static void main(String[] args) { // TODO Auto-generated method stu

2020-06-05 21:30:16 92

原创 状态模式

状态模式解决的问题:状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。案例:工作状态的变化源代码:package org.zangyu.state;public class State { public static void main(String[] args) { // TODO Auto-generated method stub Work ep =new Work();

2020-06-02 21:23:19 102

原创 观察者模式

基本定义:观察者模式是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实作事件处理系统。实例:公司前台,观察老板动向源代码:package org.zangyu.observer;import java.util.ArrayList;public class observer { public static void main(String[] args..

2020-06-02 21:10:48 205

原创 回文字符串(DP)

LCS模板题 回文字符串题目描述所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba"。当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串。现在要求你,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串。输入第一行给出整数N(0<N<100)接下来的N行,每行一个字符串,每个字符串长度不超过1000.输出每...

2020-05-22 16:16:29 979

原创 最长公共子序列(LCS)

我们称Z=<z1,z2,z3,z4....zn>是序列X=<x1,x2,x3,x4..xm>的子序列当且仅当存在严格上升的序列<i1,i2,i3,i4...in>使得j=1,2,3,...k,有Xij=Zj。设 X=(x1,x2,.....xn) 和 Y={y1,y2,.....ym} 是两个序列,将 X 和 Y 的最长公共子序列记为LCS(X,Y)找出LCS(X,Y)就是一个最优化问题。因为,我们需要找到X 和 Y中最长的那个公共子序列。而要找X 和 Y的LCS

2020-05-22 16:10:32 225

原创 最长上升子序列

一个数的序列bi,当b1<b2< ... <bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1,a2, ...,aN),我们可以得到一些上升的子序列(ai1,ai2, ...,aiK),这里1 <=i1<i2< ... <iK<= N。比如,对于序列(1, 6, 4, 2, 3, 9, 8),有它的一些上升子序列,如(1, 6), (2,3,9)等等。这些子序列中最长的长度是4,比如子序列(1, 2,3, 8).你的...

2020-05-22 15:16:24 115

原创 数塔问题

考虑在下面被显示的数字金字塔。 写一个程序来计算从最高点开始在底部任意处结束的路径经过数字的和的最大。 每一步可以走到左下方的点也可以到达右下方的点。 7 3 8 8 1 0 2 7 4 44 5 2 6 5在上面的样例中,从7 到 3 到 8 到 7 到 5 的路径产生了最大和:30Input第一个行包含 R(1<= R<=1000) ,表示行的数目。 后面每行为这个数字金字塔特定行包含...

2020-05-15 10:52:25 315

原创 斐波那契数列

问题描述Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余数。说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。样例输入10样例输出.

2020-05-15 10:41:27 190

原创 汉诺塔问题

1.概述汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。2.图解如下图所示,从左到右有A、B、C三根柱子,其中A柱子上面有从小叠到大的n个圆盘,现要求将A柱子上的圆盘移到C柱子上去,期间只有一个原则:一次只能移到一个盘子且大盘子不能在小盘子上面,求移动的步..

2020-05-15 10:36:16 175

原创 模板模式

动机:对于某一项任务,它常常有稳定的整体操作结构,但各个子步骤却有很多改变的需求,或者由于固有的原因,而无法和任务的整体结构同时实现。例题:考试的例子,考试题相同每个人的解答不同定义一个抽象类,将部分逻辑以具体方法以及具体子类实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同子类可以以不同的方式来实现这些抽象方法。实现代码:class TestPaper{ protected String Answer1() { return ""; } p

2020-05-14 15:46:06 102

原创 计算行列式

根据n阶行列式Det(a)的定义:n = 1 时,Det(a) = a[0][0]n = 2 时,Det(a) = a[0][0] * a[1][1] - a[1][0] * a[0][1]n > 2 时,Det(a) = sum(a[0][i] * (-1)^i * 去掉a[0][i]所在行列的n-1阶行列式的值)按照行列式的性质递归即可问题描述  //据说很多人的题目会有一大堆废话,本傻×就不在这里废话了。  给定一个N×N的矩阵A,求|A|。输入格式  ...

2020-05-12 22:45:04 1576

原创 策略模式

策略模式是一种定义一些列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方法调用所有的算法,减少了各种算法类与使用算法类之间的耦合。在基本的策略模式中,选择所用具体实现的职责由客户端对象承担,并转给策略模式的Context对象。这本身并没有解除客户端需要选择判断的压力,可以将策略模式和简单工厂模式结合,选择具体来实现的职责就可以给Context来承担,最大化地减轻了客户端的职责。例子:商场收银软件原始代码:package org.zang...

2020-05-12 21:17:39 117

原创 线段树总结

【概述】线段树是一种二叉搜索树,其存储的是一个区间的信息,每个结点以结构体的形式去存储,每个结构体包含三个元素:区间左端点、区间有端点、该区间要维护的信息(视实际情况而定),其基本思想是分治的思想。特点:每个节点的左孩子区间范围为 [l,mid],右孩子为 [mid+1,r] 对于结点 k,左孩子结点为 2*k,右孩子为 2*k+1,符合完全二叉树的性质结构图:基本操作:主要有 5 个:建树、单点查询、单点修改、区间查询、区间修改结构:struct node{ ...

2020-05-12 16:44:10 100

原创 装饰模式

装饰模式的动机(Motivation)➢在某些情况下我们可能会“过度地使用继承来扩展对象的功能”,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性;并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致更多子类的膨胀。 ➢如何使“对象功能的扩展”能够根据需要来动态地实现?同时避免“扩展功能的增多”带来的子类膨胀问题?从而使得任何“功能扩展变化”所导致的影响降为最低?案例:人及其属性人有不同国家,如中国人、美国人, 如果有属性:高和富,则有组合: 高、富、高富等共3个

2020-05-08 22:19:37 116

原创 图书管理系统

web作业,,来记录一下,,代码量没有多少,挺好写的。增加了一个下架图书功能,,当flag为1时,,显示在当前页面中,flag为0时,,,不显示,,点击下架图书时显示。bookInfo.javapackage beans;import java.sql.*;public class bookInfo { private String driverStr...

2020-05-05 15:59:06 752

原创 01背包板子

试题 算法提高 01背包提交此题资源限制时间限制:1.0s 内存限制:256.0MB问题描述  给定N个物品,每个物品有一个重量W和一个价值V.你有一个能装M重量的背包.问怎么装使得所装价值最大.每个物品只有一个.输入格式  输入的第一行包含两个整数n, m,分别表示物品的个数和背包能装重量。  以后N行每行两个数Wi和Vi,表示物品的重量和价值输出格式...

2020-04-29 23:45:00 318

原创 桥接模式

例子:手机通讯录、游戏类class HandsetGame{ public void Run() { }}//手机品牌Mclass HandsetBrandM extends HandsetBrand{ }//手机品牌Nclass HandsetBrandN extends HandsetBrand{ }//手机品牌M的游戏class HandsetBran...

2020-04-29 11:50:48 97 1

阿婆私房菜完善版.zip

实训项目,功能完善了一下,购物车中添加了加一减一操作,然后背景美化了一下

2021-02-09

Javaweb实训——阿婆私房菜.zip

第一次实训项目,,没什么扩展内容,但所需要的功能基本上已经实现了,,对于初学者来说可以参考一下,多少会有一些帮助

2020-07-26

空空如也

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

TA关注的人

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