自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux 模拟生产者-消费者的示例程序

Linux 模拟生产者-消费者的示例程序。

2022-10-04 23:20:31 789 1

原创 LeetCode 47. 全排列 II

used[i-1],首先i>0防止used[i-1]溢出,其次当nums[i-1]==nums[i]表示可能会出现树层重复的情况(因为可能出现used[i-1]==true的情况时,只可能出现在树枝之间,不可能出现树层之间,因为树层之间只能出现一个数),如果used[i-1]==false,即在nums[i-1]结点时,所有情况已经遍历过了,那么在nums[i]结点时,应该跳过这个结点。输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

2022-09-29 12:20:36 124

原创 LCCUP‘22 力扣杯 二叉树灯饰

力扣嘉年华」的中心广场放置了一个巨型的二叉树形状的装饰树。节点值为 0 表示灯处于「关闭」状态,节点值为 1 表示灯处于「开启」状态。树状dp,枚举所用的状态转移,一共四种状态,分别是1、根结点不亮,子树全部不亮;2、根结点亮,子树全部不亮;3、根结点亮,子树全部亮;开关 3:切换 当前节点及其左右子节点(若存在的话) 上的灯的状态;开关 2:切换 以当前节点为根 的子树中,所有节点上的灯的状态;,请返回最少需要操作多少次开关,可以关闭所有节点的灯。开关 1:切换当前节点的灯的状态;

2022-09-25 09:47:48 631

原创 LeetCode 179. 最大数(贪心法)

用许多个数字组合成最大的数字,首先想到的是贪心,如果从字符串最左端选最大的数字,那么整体就是最大的数字。那么该如何排序,如何让两个数字组合出最大的数,利用字符串的性质:a + b和b + a这是两个数字组合的可能,例如,a = "3" ,b = "30" , a + b = "330",b + a = "303",选出最大的数“330”即可。,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。输出结果可能非常大,所以你需要返回一个字符串而不是整数。输入:nums = [3,30,34,5,9]

2022-09-24 14:34:27 231

原创 Strassen矩阵乘法(C++)

思路两个矩阵A,B相乘时.有以下三种方法暴力计算法. 三个for循环, 这时候时间复杂度为O(n^3).因为Cij=∑(k=1->n)Aik*Bkj,需要一个循环, 且C中有n^2个元素, 所以时间复杂度为O(n^3)分治法. 首先将A,B,C分成相等大小的方块矩阵.所以C11=A11*B11+A12*B21, C12=A11*B12+A12*B22,C21=A21*B11+A22*B21, C22=A21*B12+A22*B22用T(n)表示n*n矩阵的乘法, 所以有T(

2022-04-29 10:23:24 4509 2

原创 如何保存一个十进制数的二进制位数

#include <bits/stdc++.h>using namespace std;int main(){ int num; cin >>num; // arr数组是保存num在二进制下的各个位数 int arr[10]; // 初始化arr数组,令所有值为0 for(int i=0;i<10;i++){ arr[i]=0; } int cnt=0;//用来保存num二进制的位数 .

2022-04-03 11:36:41 290

原创 MergeSort(C++)

#include <iostream>using namespace std;// Merge: 对数字进行合并void Merge(int *arr,int begin,int mid,int end){ int i=begin,j=mid+1,k=0; int *temp=new int[end-begin+1]; while(i<=mid&&j<=end){ if(arr[i]<=arr[j]){ .

2022-03-19 00:16:37 1288

原创 快速排序(C++)

#include <iostream>using namespace std;//params *arr-数组, begin-数组的首位,end-数组的末尾void QuickSort(int *arr,int begin,int end){ if(begin>end){ return; } int tmp=arr[begin]; int i=begin; int j=end; while(i!=j){ .

2022-03-18 23:42:05 652

原创 如果剥离一个自然数的各个位置上的数

#include <iostream>using namespace std;int n,cnt;int arr[1000];void splitNum(int x){ while(x){ if(x<10){ arr[cnt++]=x; return; } else{ int y=x%10; // 保存个位上的数字 arr[.

2022-03-18 17:53:18 335

原创 JDBC介绍

一. JDBC的概念JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库。由于不同的数据库厂商提供的数据库驱动各不相同,在使用不同数据库时需要学习对应数据库驱动的api,对于开发人员来说学习成本十分的高。于是sun提供了JDBC的规范,本质上一大堆的接口,要求不同的数据库厂商提供的驱动都实现这套接口,这样以来开发人员只需要学会JDBC这套接口,所有的数据库驱动作为这套接口的实现,就都会使用了。二. 六个步骤实现JDBC

2022-03-05 16:58:41 145

原创 jQuery介绍

一. jQuery概述1.1.jQuery是什么jQuery 是一个“写的更少,但做的更多”的轻量级 JavaScript 函数库。1.2.jQuery的优势可以简化JavaScript代码可以像css那样获取元素可以修改css来控制页面效果可以兼容常用的浏览器1.3.jQuery引入与引入普通js文件一样二.jQuery语法2.1.$介绍$符号等价于jQuery, 是jQuery单词的简写2.2.文档就绪事件所谓的文档就绪事件, 就是在整个html文

2022-03-05 15:27:20 475

原创 DHTML介绍

一. 概述DHTML: Dynamic HTML 即动态的 htmlDHTML并不是一门新的技术, 而是将现有的HTML, CSS, JavaScript整合在一起, 形成了DHTML技术.DHTML分为BOM和DOM。BOM:Browse Object Modle 即浏览器对象模型,其中封装了浏览器操作相关对象。DOM:Document Object Modle 即文档对象模型,将整个HTML文档按照文档结构组织成了树形结构。二. BOM2.1.window对象此对象为

2022-03-04 08:50:24 743

原创 JavaScript介绍

一.JavaScript概述:JavaScript是用来指定网页的行为.JavaScript特点JavaScript是脚本语言,不需要编译,解释运行JavaScript可以插入html页面JavaScript是弱类型语言JavaScript优点交互性:可以与用户进行动态交互安全性:只能在浏览器内部运行,不能访问浏览器之外的资源跨平台:有浏览器即可运行,与平台无关二. 在html中引入JavaScript2.1.通过script标签引入(第一种方式)在h

2022-03-03 21:24:05 207

原创 CSS介绍

一. css概述css:层叠样式表, 用来美化html页面的, 比如html为盖房子,css则为装修. css增强了网页的显示能力,并且css代码可以和html代码完全分离.二. 在html页面引入css2.1.通过标签上的style属性引入绝大部分标签都提供style属性,可以通过style属性设置当前标签的css样式这种引入方式不推荐大量使用,会造成页面的混乱.2.2.通过style标签引入在head中,可以提供一个style标签,标签内部可以写入css样式初步实现了css代

2022-03-03 19:47:20 3491

原创 HTML介绍

一. 概述HTML是超文本标记语言,大多数用来编写网页.二.HTML结构<!DOCTYPE HTML><html> <head> </head> <body> </body></html><!DOCTYPE HTML> 指的是HTML5的文档声明<html> 每个html都需要这个标签,表示文档的开......

2022-03-02 20:19:11 303

原创 XML介绍

一.概述:1.XML 指可扩展标记语言 (Extensible Markup Language)2.XML 的设计宗旨是传输数据,而非显示数据3.XML 利用标签来保存数据4.标签之间通过嵌套关系来表示数据之间的层级关系二.XML的用途:1.用来传输数据 (具有跨平台的特性,因此可以在不同的操作系统上交互)2.因为XML能保存具有结构化的数据, 所有也常用作程序的配置文件三.语法:1. 文档声明:<?xml version=”1.0” encoding=”utf-.

2022-03-01 22:40:06 1843

原创 Web及其Web应用部署

Web概念:Web即网页, 表示在Internet主机上供外界访问的资源.Web资源:1. 静态资源: html, css, js, txt......2. 动态资源: jsp,servlet......Web服务器:

2022-02-11 10:51:10 1828

原创 Response介绍

概念:response对象是用来对客户端进行响应的继承关系:ServletRequest、ServletResponse: 当浏览器发出请求时, Web容器创建一个ServletRequest对象封装请求信息, 一个ServletResponse对象封装响应信息. 两个对象作为Servlet的service()方法中的参数.HttpServletRequest、HttpServletResponse: 丰富了SerlvetRequest、ServletResponse, 提供了http协议相

2022-02-10 15:29:51 2147

原创 Request介绍

Request概念:request对象封装了用户一次请求的全部信息继承关系:ServletRequest、ServletResponse: 当浏览器发出请求时, Web容器创建一个ServletRequest对象封装请求信息, 一个ServletResponse对象封装响应信息. 两个对象作为Servlet的service()方法中的参数.HttpServletRequest、HttpServletResponse: 丰富了SerlvetRequest、ServletResponse,

2022-02-10 10:31:38 5456

原创 Servlet介绍

概念: sun公司提供的一门开发动态WEB资源的技术.开发步骤:1.创建一个Servlet1)自定义一个类,实现Servlet接口2)自定义一个类,继承HttpServlet. 重写doGet()或doPost()方法,提供应答逻辑2.在WEB应用的web.xml中进行配置<servlet> ------- <servlet-name> <servlet-class><ser......

2022-02-08 12:03:38 351

原创 HTTP协议

HTTP概念 HTTP协议(即超文本传输协议HyperText Transfer Protocol),它是基于TCP/IP协议的应用层传输协议. 规定了客户端一次请求, 服务端一次应答后主动断开连接的连接方式HTTP基本原则1.基于请求应答模型, 就是有人敲门(请求) 然后你打开了门(应答)这种关系.2.一次请求对应一次应答.3.只能由客户端发出请求, 服务器接收请求并给出应答.HTTP详细内容HTTP请求 Request典......

2022-01-28 17:47:16 1991

原创 SQL注入以及解决方法

目录SQL注入:用例子说明:1.创建user表,其中表中有三个字段,分别是id(有自增功能), username, password。并插入三条数据。2.将数据库和Java连接并进行登录测试3.运行代码:​​​这就是SQL注入的现象, 为什么会出现这样的现象?那我们怎么该避免这种情况呢?这时候就需要用到PreparedStatement对象。SQL注入:由于jdbc程序在执行的过程中,sql语句在拼接时使用了由页面传入参数。如果用户恶意传入一些sql中的特殊关键字,就会.

2022-01-26 12:56:28 7376

原创 HDU - 3790 最短路径问题

问题:给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。Input输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p。最后一行是两个数 s,t;起点s,终点。n和m为0时输入结束。(1<n<=1000, 0<m<100000, s != t)Output输出 一行有两个数, 最短距离及其花费。Sa

2021-08-24 09:48:27 164

原创 POJ - 2236 Wireless Network

An earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have set up a wireless network with the lap computers, but an unexpected aftershock attacked, all computers in the network were all broken. The computers are repaired one b

2021-08-20 22:05:31 75

原创 POJ - 1182 食物链

一道十分有意思的题动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这N个动物所构成的食物链关系进行描述:第一种说法是"1 X Y",表示X和Y是同类。第二种说法是"2 X Y",表示X吃Y。此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话有的是真的,有的是假的。当一句话满足下列三条之一时,这句话就是假话,否则就是真话。1)

2021-08-20 18:36:09 84

原创 HDU - 4768 Flyer

The new semester begins! Different kinds of student societies are all trying to advertise themselves, by giving flyers to the students for introducing the society. However, due to the fund shortage, the flyers of a society can only be distributed to a part

2021-08-19 10:04:10 122

原创 51Nod - 2146 分割绳子(二分)

现在有N(1 <= N <= 1000)条绳子,他们的长度分别为L1,L2,……,Ln(1 <= Li <= 10000),如果从他们中切割出K(1 <= K <= 1000)条长度相同的绳子,这K条绳子每条最长能多长?Input共有两行,第一行包含两个正整数N和K,用一个空格分割;第二行包含N个数,一次表示N条绳子的长度,两数间用一个空格分隔,每条绳子的长度的小数不超过两位。Output仅包含一个数,表示所得K条绳子的最大长度。答案四舍五入保留小数点

2021-08-18 09:41:35 149

原创 计蒜客 - T1258 最小新整数(贪心)

给定一个十进制正整数n(0<n<1000000000),每个数位上数字均不为0。n的位数为m。现在从m位中删除k位(0<k<m)(0<k<m),求生成的新整数最小为多少?例如:n=9128456,k=2, 则生成的新整数最小为12456。输入格式第一行t, 表示有t组数据;接下来t行,每一行表示一组测试数据,每组测试数据包含两个数字n,k。输出格式t行,每行一个数字,表示从n中删除k位后得到的最小整数。Sa...

2021-08-18 08:28:32 454

原创 POJ - 2299 Ultra-QuickSort

#include <iostream>#define ll long long//因为a[i]范围超过int类型,所以要用long long存储using namespace std;const int N=5e5+5;int n;ll cnt;ll arr[N],temp[N];//temp数组为过度数组void arr_add(ll arr[],int left,int mid,int right)//归并{ if(left>=right) r...

2021-08-17 09:21:38 133

原创 HDU - 1285 确定比赛名次(拓扑序列)

#include <bits/stdc++.h>using namespace std;const int N=510;int h[N],e[N],ne[N],in[N],idx;//in数组是存储每个数的入度int n,m;void init()//初始化{ memset(h,-1,sizeof h); idx=0;}void add(int a,int b)//链式向前星存图{ e[idx]=b,ne[idx]=h[a],h[a]=id...

2021-08-16 11:48:44 126

原创 HDU - 1072 Nightmare

#include <iostream>#include <queue>using namespace std;int tt,n,m;int Map[10][10];int dx[4]= {1,-1,0,0};int dy[4]= {0,0,1,-1};struct node{ int x,y; int step; int t;} pose;void bfs(){ queue<node>q; ...

2021-08-16 10:55:55 96

原创 POJ - 1562 Oil Deposits(BFS)

#include <iostream>#include <cstring>#include <utility>#include <queue>#define x first#define y secondusing namespace std;const int N=105;char Map[N][N];int dx[8]={1,1,1,0,0,-1,-1,-1};int dy[8]={1,-1,0,1,-1,1,-1,0}...

2021-08-15 08:36:35 108

原创 POJ - 1724 ROADS

#include <iostream>#include <cstring>#define inf 0x3f3f3f3f//定义inf为无穷大using namespace std;int n,idx,k,r,sum;const int N=1e4+5;int h[N],vis[N];struct node{ int u,v,w,cost;//分别用来存储原城市,目的城市,路径长度,所消耗的硬币 int next;//用来存边}arr...

2021-08-15 00:07:08 92

原创 51Nod - 2060 全排列

该问题可以想象成,我有一盒纸牌和一盒箱子(纸牌数量和盒子数量相等)。把纸牌放进盒子,求有多少种不同的方法。#include <iostream>using namespace std;int n,idx;int vis[15],arr[15];void dfs(int x)//x:第x个盒子{ if(x==n+1)//当所有盒子不空的时候 { for(int i=1;i<=n;i++) { ...

2021-08-14 17:49:34 121

原创 HDU - 2553 N皇后问题

#include <iostream>using namespace std;const int N=15;int n,cnt;int a[N],b[N],c[2*N],d[2*N],arr[N];//a,b,c,d四个数组是分别表示行,列和两条对角线,因为行,列最大为10,那么对角线数组就用2倍行,列存储void dfs(int k)//k表示行数,i表示列数{ if(k==n+1)//如果行数等于边数+1(因为当行数等于边数指的是完成皇后安置,这时候进入边数+...

2021-08-13 21:13:54 91

原创 OpenJ_Bailian - 4123 马走日

#include <iostream>#include <cstring>using namespace std;int t,n,m,x,y,cnt/*记录跳过的点*/,sum/*记录一共多少种情况可以跳满*/;int vis[15][15];int dx[8]= {1,2,-1,-1,1,-2,-2,2};//马走日跳的规则是日字形跳法,例如:x=1,y=2用dx[0]dy[0]来表示,x=-1,y=2用dx[2]dy[2]表示int dy[8]= {2,1,...

2021-08-13 20:01:58 145

原创 HDU - 1016 Prime Ring Problem

#include <iostream>#include <cstring>using namespace std;int arr[25],vis[25],n,cnt;//根据题意,0<n<20,所以开个大小为25的数组即可。bool is_Prime(int x)//判断数x是不是质数{ int k=0; for(int i=2; i<x; i++) { if(x%i==0) { ...

2021-08-13 17:41:59 95

原创 POJ - 1562 Oil Deposits (DFS)

Oil Deposits

2021-08-13 16:25:28 144

原创 如何给一组有相同数据的排名(降序)

#include <bits/stdc++.h>using namespace std;int main(){ int arr[13] = {89,78,45,23,23,19,19,19,5,5,5,3,1};//首先定义一组降序排列的数组 int arr1[13] = {0};//此数组是用来保存名次的数组,并且先初始化数组全为0 for(int i = 0;i < 13;i++) { int count = 1;//记录次序.

2021-05-28 17:29:17 796

原创 如何判断一组二维数组数据符合数独的定义呢?

当你不幸开始做数独的题时候,且当你不幸点进来的时候。不要烦躁,不要自我否定。默默付出,慢慢沉淀,靓丽绽放的那一天会有的,会有的!#include <bits/stdc++.h>using namespace std;void input(int arr[9][9]);//定义一个存储数独数据的函数bool isvalid(int arr[9][9]);//判断数据是否能够构成数独,详见下面具体函数bool isvalid(int i,int j,int arr[9][9])

2021-05-25 20:00:19 263

空空如也

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

TA关注的人

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