自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JAVA-多线程

程序是为完成特定任务、用某种语言编写的一组指令的集合,是一段静态的代码 。进程是程序的一次执行过程,或者是正在执行的程序,是一个动态的过程;有它自身的产生、存在和消亡的过程——生命周期,进程作为资源分配的单位。线程从属于进程,是一个程序内部的一条执行路径。线程作为CPU调度和执行的单位,每个线程拥有独立的运行栈和程序计数器。多线程存在安全隐患。(1)一个线程从属于一个进程;一个进程可以包含多个线程。(2)一个线程挂掉,对应的进程挂掉;一个进程挂掉,不会影响其他进程。(3)进程是系统资源调度的最小单位;线程C

2022-06-19 19:05:22 356 2

原创 JAVA-异常处理

目录异常分类 ErrorException异常处理方式(抓抛模型)try-catch-finally 使用方法: throws +异常类型 的使用方法:手动抛出异常用户自定义异常类 异常的结构: java虚拟机无法解决的严重问题:JVM系统内部错误、栈溢出、堆溢出 一般不编写针对的代码处理 在程序员编写程序时,考虑到错误的检测、错误信息的提示以及错误的处理 1、编译时异常: IOException IO流异常 ClassNotFoundExcepti

2022-06-19 18:52:30 226 1

原创 JAVA-泛型<>

目录泛型 的概念java比较器使用泛型后的写法 自定义泛型结构:泛型类,泛型接口;泛型方法 自定义泛型类泛型类的继承泛型方法通配符 ' ?' 的使用: 有限制的通配符泛型的嵌套 所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这个类型参数将在使用时(例如, 继承或实现这个接口,用这个类型声明变量、创建对象时确定(即传入实际的类型参数,也称为类型实参)。 引入背景集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以JDK1.5之

2022-06-19 18:49:27 475

原创 JAVA-反射(应用:动态代理)

目录反射的理解​反射机制能提供的功能关于java. lang. Class类的理解创建对应运行时类的对象获取运行时类的全部结构获取指定结构反射的应用:动态代理 Reflection (反射是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。➢在运行时判断任意一个对象所属的类➢在运行时构造任意一个类的对象➢在运行时判断任意一个类所具有的成员变量和方法➢在运行时获取泛型信息➢在运行时调用任意一个对象的成员变量和方

2022-06-19 18:38:08 277

原创 JAVA-网络编程(TCP/UDP/URL)

目录 网络编程 TCP网络编程 UDP协议的网络编程URL编程网络编程中两个主要的问题:1、如何准确地定位网络上一台或多台主机:定位主机上的特色应用2、找到主机后如何可靠高效地进行数据传输二、网络编程中的两个要素1、对应问题一:IP和端口号2、对应问题二:提供网络通信协议:TCP/IP参考模型(应用层、传输层、网络层、物理层、数据链路层)例题一:客户端发送信息给服务端,服务端将信息输出在控制台上注:异常需要用try-catch-finally处理(参考上面各种流的代码),这里为了看得清楚简单抛个异常

2022-06-19 18:36:39 358

原创 JAVA- IO流

目录流的分类文件流案例一:FileReaderFileWriter文件复制FileInputStream非文本文件复制( FileInputStream、FileOutputStream)缓冲流非文本文件复制 BufferedInputStream、BufferedOutputStream文本复制(BufferedReader、BufferedWriter)文件加密转换流字符集标准输入输出流 \打印流\数据流对象流随机存取文件流JDK9新特性 NIO.2中Path、Paths、Files类的使用按数据单位分

2022-06-19 18:35:07 244

原创 JAVA集合-Collection接口与Map接口

1、集合、数组都是对多个数据进行存储操作的结构,简称Java 容器。 说明:此时的存储,主要是指内存层面,不涉及持久化的存储(.txt,.jpg等)2.1、数组在存储多个数据方面的特点 >一旦初始化以后,其长度就确定了. >数组一且定义好,其元素的类型也就确定了。我们也就只能操作指定类型的数据了。 比 如: String[] arr;int[] arr1;object[] arr2;2.2、数组在存储多个数据方面的缺点: >一

2022-06-19 18:19:50 365

原创 springmvc拦截器

目录1、概述2、自定义拦截器2.1、自定义拦截器MyInterceptor2.2、在springmvc中配置该拦截器3、登陆验证拦截3.1、先写controller3.2、首页 index.jsp3.3、登陆页面 login.jsp3.4、主页面 success.jsp3.5、添加拦截器3.6、在springmvc中配置拦截器1、概述类似于Servlet中的过滤器,拦截器与过滤器的区别:拦截器是AOP思想的具体应用过滤器servlet规范中的一部分

2022-03-09 14:07:58 108

原创 SSM框架整合

目录1、新建Maven项目, 添加web的支持2、导入相关的pom依赖3、Maven资源过滤设置4、建立基本结构和配置框架!6、Spring层7、SpringMVC层8、编写Controller层9、编写jsp10、运行排错1、新建Maven项目, 添加web的支持2、导入相关的pom依赖<dependencies> <!--Junit--> <dependency> ...

2022-03-06 22:00:41 306

原创 SpringMVC下的文件上传和下载

1、概述文件上传是项目开发中最常见的功能之一 ,springMVC 可以很好的支持文件上传,但是SpringMVC上下文中默认没有装配MultipartResolver,因此默认情况下其不能处理文件上传工作。如果想使用Spring的文件上传功能,则需要在上下文中配置MultipartResolver。前端表单要求:为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data。只有在这样的情况下,浏览器才会把用户...

2022-03-06 21:15:44 109

原创 JQuery下的AJAX

1、简介AJAX=Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。 在 2005 年,Google 通过其 Google Suggest 使 AJAX 变得流行起来。Google Suggest能够自动帮你完成搜索单词。 Google Sugge...

2022-03-06 20:57:18 183

原创 SpringMVC下的Json

1、简介JSON是一种轻量级的数据交换格式,目前使用特别广泛 采用完全独立于编程语言的文本格式来存储和表示数据 简介和清晰的层次结构是的JSON成为理想的数据交换语言 伊予人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率2、JSON键值对2.1、JSON与JavaScript的区别用来保存JavaScript对象的一种方式,和JavaScript对象的写法大同小异 键值对组合...

2022-03-06 20:47:13 357

原创 springmvc

目录一、什么是SpringMVC1、概述2、中心控制器3、SpringMVC执行原理二、注解版创建springMVC1、配置web.xml2、添加Spring MVC配置文件3、创建Controller4、创建视图层5、controller配置6、@RequestMapping注解7、结果跳转方式四、Restful风格1、功能2、传统方式操作资源3、使用RESTful操作资源五、传递参数和参数回显1、属性名相同2、属性名不同3、

2022-03-06 20:29:23 184

原创 spring

目录1、spring概述1、简介2、依赖3、优点4、Spring Boot与Spring Cloud2、IOC理论推导2.1、IOC的原型2.2、IOC本质2.3、IOC创建对象的方式3、Spring配置3.1、别名3.2、bean配置3.3、import4、依赖注入(DI)4.1、依赖注入:属于set注入!4.2、注入4.3、p命名和c命名注入4.4、Bean的作用域5、Bean的自动装配5.1、手动配置如下5.2、byN

2022-03-06 16:03:23 330

原创 MyBatis

一、MyBatis步骤 1、在src/main/resources中创建mybatis-config.xml作为核心配置文件,内涵数据库连接信息,同时也需要在该文件中使用mapper为每一个Mapper.xml注册 <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//.

2022-03-06 13:56:04 476

原创 javascript

使用方式与css相似,在html的头部信息中添加script标签,标签内部可以写javascript语言(简称js)alert函数是一个跳出窗口(可以当成输出函数使用)<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript"&g

2021-10-27 11:05:36 69

原创 HTML+CSS

目录HTML单标签字体标签font加粗标签b特殊字符 <;> 空格符标题标签 h1-6超链接标签a列表标签 ol、ul图片标签img单标签表格标签table框架标签 iframe表单标签 form表单提交其他标签 div、span、pHTML单标签<br/>:换行<hr/>:水平线<img/>:显示图片字体标签font<font></font>...

2021-10-26 16:01:25 539 1

原创 JAVA篇

数据类型boolean(1bit) char (1字节) byte(1) short(2) int (4) long (8) float(4) double(8)long 类型赋初值要在后面加l或L,float赋初值在后面加f或F,float可以表示的值比long大,因为一部分空间存储的是10的幂次。例E89=10^89。自动类型转换只能从小到大转换char 、byte 、short > int > long > float > dou.........

2021-09-15 22:21:17 247

原创 map / multimap

基本概念构造和赋值map<int,int>m; //默认构造m.insert(pair<int,int>(10,20));map<int,int>m2(m); //拷贝构造//赋值map<int,int>m3;m3=m2;大小和交换插入和删除// 插入方式map<int,int<m;//第一种m.insert(pair<int,int>(1,1...

2021-09-12 17:53:05 72

原创 set /multiset 容器 pair对组

目录基本概念构造和赋值大小和交换插入和删除查找和统计set和multiset区别pair对组创建set容器排序一、存放内置数据类型二、存放自定义数据类型基本概念所有元素会在插入时自动被排序本质:set / multiset 属于关联式容器,底层结构用二叉树来实现set 和multiset 区别:set不允许容器中有重复的元素,multiset允许容器中有重复的元素。构造和赋值例:set<int>s;..

2021-09-12 17:15:23 295

原创 list容器

目录链表与数组的区别构造函数原型赋值和交换函数容器大小插入和删除数据存取反转和排序链表与数组的区别链表有数据域和指针域,指针域指向链表中下一结点,所以形成顺序的表,链表可以在任意位置随意插入和删除。STL中的链表是双向循环链表,每个结点有一个指针指向前面结点的地址,一个指针指向后面结点地址且首尾相连。因为链表存储方式不是连续空间,所以链表list的迭代器只支持前移和后移,属于双向迭代器;即只能连续++和--,不能直接+n和-n;l...

2021-09-10 17:23:18 74

原创 deque篇

目录与vector比较构造函数赋值函数容器大小 deque没有容量的概念插入函数数据存取排序操作与vector比较deque是双端数组,可以对头尾插入和删除,比vector头部插入删除效率高。vector访问元素速度比较快。内部有中控器,内部存放每个缓冲区的地址,缓冲区存放真实数据,使得deque像一个连续的内存空间构造函数和vector类似 T是任意数据类型赋值函数容器大小 deque没有容量的概...

2021-09-10 11:14:16 99

原创 vector篇

vector基本概念vector(单端数组)与数组区别vector可以动态扩展,数组是静态空间。当vector空间不够用时不是向后开辟(怕后面的空间已经被占用),而是在内存中找一块更大的内存空间,将原有数据拷贝至新空间并释放原空间。vector迭代器 iterator使用迭代器iterator访问元素 vector<int>v; v.push_back(1); for(vector<int>::iterator i=v.b...

2021-09-09 18:44:49 86

原创 string篇

string本质使一个类,类内封装了char *(字符串指针)构造函数原型: string(); //空字符串 string(const char* s); //通过字符串初始化 string(const string& str); //(构造函数)通过string对象实例化另一个string对象 string(int n,char c); //使用n个字符初始化赋值重载函数 = assignstring& operator=(const...

2021-09-09 17:32:44 1130

原创 指针篇& new篇

指针指向的是地址,所有类型指针的内存是4字节。例如创建一个int a; int * p=&a;此时p=a的地址,*p=a的值。指针常量 指针在前常量在后,指针指向不可以改,指针值可以改int * const p;常量指针 常量在前指针在后 指针指向可以改,指针值不可以改const int * p;指针和数组int a[10]={1,2,3,4,5,6,7,8,9,0};int *p=a; //a即为数组的首地址,此时指针p为int数组类型使用指针展示数组a有...

2021-09-09 15:00:34 256

原创 min25筛

min25筛可以解决1e8~1e11范围内的问题。此代码求n以内的质数和inline char gc(){ static char ibuf[RLEN],*ib,*ob; (ib==ob)&&(ob=(ib=ibuf)+fread(ibuf,1,RLEN,stdin)); return (ib==ob)?EOF:*ib++;}#define gc getcharinline ll read(){ char ch=gc(); ll res=0,f=1; while(

2020-09-24 19:45:38 70

转载 计算几何

有两个坐标a(x1,y1),b(x2,y2);a x b=x1y2-x2y1; 叉积a * b=x1x2+y1y2; 点积题目题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。二、解题思路先判断两条直线是不是同线,不是的话再判断是否平行,再不是的话就只能是相交的,求出交点。如何判断是否同线?由叉积的原理知道如果p1,p2,p3共线的话那么(p2-p1)X(p3-p1)=0。因此如果p1,p

2020-09-12 16:26:32 203

原创 多个数求gcd性质

性质gcd(x,y,z)=gcd(x,y-x,z-y);即 x=n1 *gcd,y= n2 * gcd,z= n3 * gcd,相减不影响gcd的结果。注:0和一个数的公约数为这个数本身链接:https://ac.nowcoder.com/acm/contest/6112/C来源:牛客网牛妹是一个喜欢公因子的女孩子。牛妹有一个长度为 n 的整数序列 a1,a2,…,an​。她希望能求出一个非负整数 x,使得 a1+x,a2+x,…,an+x 的 gcd 最大。牛妹不满足于只求出这个最

2020-07-20 11:16:02 1458

原创 高斯消元法 概率dp 蛇梯棋 Snakes and Ladders LightOJ - 1151 详解

前言:高斯消元法,用于解方程组变为矩阵形式变为对角线上值为1,其余值为0的格式,则后面一列即为对应变量的值(线性代数知识)具体实现参考这个博客:https://blog.csdn.net/lzyws739307453/article/details/89816311代码模板:double a[110][110];int n=100;void build(){ 构建矩阵}double ans[110];void gauss(){ for(int.

2020-07-15 15:50:24 300

原创 生日悖论 Birthday Paradox 至少有两人同一天生日概率

首先我们来看下生日悖论:假设有n个人,365天的时间,假设所有人生日不相同的概率为(1-P)第一个人可选择365 天中的任意365天,人数为1时所有人生日不相同的概率为365/365;第二个人可选择365天中的任意364天,人数为2时所有人生日不相同的概率为(364/365)* (365/365);...第n个人选择365中的任意365-n+1天,人数为n时所有人生日不相同的概率为((365-n+1)/365)*...*(364/365)* (365/365)即 1-P =(365/

2020-07-14 10:07:38 1583

原创 01背包+概率dp Just another Robbery 抢银行

题意:有n各个银行,每个银行有v[ i ]的钱并且有x [ i ] 的被抓住啊概率,如果被抓概率<=p,那么他是安全的,求他期望的最大钱数。输入3 //3组0.04 31 0.022 0.033 0.050.06 32 0.032 0.033 0.050.10 31 0.032 0.023 0.05输出Case 1: 2Case 2: 4Case 3: 6以例一为例,计算抢劫银行1和2的不安全概率为 0.02+(..

2020-07-14 09:25:32 207

原创 期望 Dangerous Maze

题意:迷宫里有n个门,每个门有值w[ i ],当值为正,意味着花费w[ i ]个时间能出迷宫,当w[ i ] 为负,意味着花费w [ i ] 个时间返回原点,并丧失记忆,问出迷宫的时间期望E,输出格式为p/q,如果无法出迷宫,则输出inf选择出迷宫的门的时间期望为 X1*T1(X1为选择出迷宫门的概率,T1为出迷宫门的平均时间)选择返回原点的门的时间期望为 X2*(T2+E) (X2为选择返回原地的概率,T2为返回原地的平均时间,E为出迷宫的时间期望)E=X1*T1+X2*(T2+E...

2020-07-13 10:52:41 80

原创 UVA - 1600 可以连续过不超过K个障碍物的dfs

题意:有个机器人,可以上下左右移动,表格中1表示障碍物,机器人可以连续通过不超过K个障碍物,问从(1,1)出发,到达点(n,m)的最小步数,如果无法到达,输出-1;题目链接很容易想到这是个dfs,但是我的dfsT了T的代码:#include<stdio.h>#include<string.h>#include<algorithm>#include<map>#include<math.h>using namespace s

2020-05-11 16:48:06 138

原创 动态求中位数 --堆+优先队列

堆是一种类似二叉树的结构,分为小根堆和大根堆,小根堆是父节点的值比子节点小,大根堆是父节点的值比子节点大。堆是用数组来实现的,0为根节点,每个结点的子节点下标为2*i+1和2*i+2;如果要保证堆的结构,需要上浮 shift_up; 下沉 shift_down来维护,时间复杂度为log有这样一道题动态求中位数求中位数就可以开这样两个堆,大的一半存入小根堆,小的一半存入大根堆,这...

2020-04-22 18:39:53 414

原创 优先队列

时间复杂度 O( log n)#include <bits/stdc++.h>using namespace std;typedef long long LL;const int MAXN = 2e5+10;struct Node{ int pos; LL val; bool operator < (const Node& ...

2020-04-17 19:01:40 79

原创 莫队算法

莫队算法是一个用分块实现的暴力算法,只支持离线区间操作。时间复杂度 O ( n*sqrt(n) )算法思路参考:https://www.cnblogs.com/WAMonster/p/10118934.html主要就是先对查询的区间排序,先按左端点所在块从小到大排序,再按右端点从小到大排序。查询时用 L 和 R 来扫描头尾,初始L=1,R=0;一个数组,两个查询区间Q1和Q2,求这...

2020-04-17 18:15:39 135

原创 二进制枚举

思路代码: for(ll i=0; i<(1<<t); i++) { ll s=0; for(ll j=0; j<=t; j++) { if(i&(1<<j)) { ...

2020-04-09 20:34:30 220 1

原创 大数分解质因数 pollard_rho

一般思路,遍历1-sqrt(n),当n为2^63次方时,时间复杂度为1e9.而pollard_rho算法的时间复杂度理论为O(n^1/4),也就是开方再开方代码:#include<iostream>#include<ctime>#include<algorithm>#include<map>using namespace std...

2020-04-09 20:31:05 1333

原创 HihoCoder - 1055 树形dp

题目链接题意:有一棵树,每个节点有不同的值,选择m个连接的节点使总和最大因为题目中已经分析了并且给了我们核心的伪代码。。。(简直送分题)。这里就简单地翻译下吧。dp [ u ] [ j ]在以u为根的一棵树中,选出包含根节点u的j个连通的结点,能够获得的最高的评分,然后我们的答案就是f(1, M)dp [ u ] [1] =a[ u ] (每个结点的值)比如在求解dp [ t...

2020-04-09 17:06:56 91

原创 前缀和 + 差分

给你一串长度为n的数列a1,a2,a3......an,要求对a[L]~a[R]进行m次操作:操作一:将a[L]~a[R]内的元素都加上P操作二:将a[L]~a[R]内的元素都减去P最后再给出一个询问求s[L]-s[R]内的元素之和?所以我们先求出差分数组,如果要在区间 [ L,R ] 内加上P ,则在L处加P ,在R+1处减P最后输出时再计算1-L 的前缀和就是S[ L ...

2020-04-08 18:59:38 122

空空如也

空空如也

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

TA关注的人

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