自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(294)
  • 资源 (3)
  • 问答 (2)
  • 收藏
  • 关注

原创 手把手教你dp:摘花生问题(递归改动态规划DP)

1 摘花生Hello Kitty想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。Hello Kitty只能向东或向南走,不能向西或向北走。问Hello Kitty最多能够摘到多少颗花生。输入格式第一行是一个整数T,代表一共有多少组数据。接下来是T组数据。每组数据的第一行是两个整数,分别代表花生苗的行数R和列数 C。每组数据的接下来R

2021-02-08 17:46:48 2011 3

原创 手把手教你dp:蓝桥杯-地宫寻宝(递归改动态规划DP)

1 地宫寻宝X 国王有一个地宫宝库,是 n×m 个格子的矩阵,每个格子放一件宝贝,每个宝贝贴着价值标签。地宫的入口在左上角,出口在右下角。小明被带到地宫的入口,国王要求他只能向右或向下行走。走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。当小明走到出口时,如果他手中的宝贝恰好是 k 件,则这些宝贝就可以送给小明。请你帮小明算一算,在给定的局面下,他有多少种不同的行动方案能获得这 k 件宝贝。输入格式第一行 3 个整数,n,m,k,含义

2021-02-08 17:22:40 1101 1

原创 手把手教你dp:01背包问题(递归改动态规划DP)

1 背包问题有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0 < N,V ≤ 10000 < vi,wi ≤ 1000

2021-02-08 03:29:37 1143 4

原创 二叉树Morris遍历

介绍给定一个N个节点的二叉树,完成前、中、后序遍历,要求时间复杂度为O(N),额外空间复杂度为O(1)Morris遍历过程(1)如果当前节点的左子树为空,则当前节点向右移动(2)如果当前节点的左子树不为空,则找到左子树上最右的节点a.如果最右节点的右孩子为空,则将最右节点的右孩子指向当前节点,当前节点向左移动b.如果最后节点的右孩子指向当前节点,则将最右节点的右孩子指向空,当前节点向右移动Morris遍历代码void morris(Node *head){ Node *cur = h

2021-02-03 11:17:21 208 1

原创 回文子串马拉车(Manacher)算法

1 介绍给定一个字符串,要求输出该字符串所有可以构成回文串的子串2 暴力计算2.1 思想对于每个位置,我们从当前位置向左右两侧扩展,依次比对对称位置上的字符,知道字符不匹配为止,就构成了一个回文子串。我们需要考虑回文子串的长度是奇数还是偶数(1)当回文子串长度为奇数时:例如:abcba我们只需要从c位置向左右两侧扩展即可(2)当回文子串长度为偶数时:例如:abba我们无法找到中间位置,因此上述从中间位置向两侧扩展无法实行因此,我们需要对输入的字符串进行加工2.2 字符串的加工2.

2021-01-29 17:34:44 646 1

原创 字符串匹配KMP算法

介绍给定两个字符串str1和str2,如果str2是str1的子串则返回str2在str1中出现的首位置,否则str2不是str1的子串可以返回-1匹配过程我们使用两个指针p1和p2,p1指向str1当前所要进行比较的位置,p2指向str2当前所要进行比较的位置。(1)如果当前p1和p2指向的位置匹配成功,则p1和p2都向后移动一位(2)如果匹配失败,那么就将p2指向next数组中p2所指向的位置,即next[p2]next数组next数组记录的当前位置之前的字符串相等的最长前缀与最长后缀,指

2021-01-29 01:12:11 195 1

原创 Django教务管理系统|学生选课系统(关注下载源码)

写在前面采用Django框架以及MySQL数据库实现BS架构的教务管理系统,网页界面模仿了正方软件股份有线公司开发的教务管理系统题目建立一个学生选课系统, 编写应用程序完成系统开发。建立基本表:学生(学号,姓名,性别,年龄,系别)课程(课程号,课程名,开课系,任课教师)学习(学号,课程号,成绩)要求有以下子系统(1)基本信息查询子系统要求:能够显示出学生表、课程表、带参数学生详细信息和选课情况(2)学生、课程信息维护子系统要求:能够维护学生表和课程表(3)学生选课子系统要求:考

2020-09-20 16:53:56 5480 18

原创 win10配置MMClassification+PyTorch+CUDA

Win10配置MMClassification依赖Python 3.8CUDA 10.2Microsoft Visual C++ 14.0PyTorch 1.10.0MMCV 1.3.17MMClassification 0.17.0配置CUDA安装CUDA Toolkit根据需要,下载CUDA Toolkit 10.2,选择本地安装双击exe文件,安装到默认路径下选择自定义安装,除CUDA/Visual Studio Integration外全部选择安装查看

2021-11-22 14:25:24 1833

原创 R-Tree

R-Tree​ R-Tree是一颗用来存储高维数据的平衡树,它把B树的思想扩展到了多维空间,采用了B树分割空间思想,并在添加、删除操作时采用合并、分解节点的方法,保证树的平衡性。数据结构​ 每个R树的叶子节点包含了多个指向不同数据的指针,这些数据可以存放在硬盘中,也可以存放在内存中。根据R树的这种数据结构,当需要进行一个高维空间查询时,只需要遍历少数几个叶子节点所包含的指针,查看这些指针指向的数据是否满足要求即可。​ R树采用了MBR的方法,从叶子节点开始用矩形(Rectangle)将空间框起来,节

2021-09-17 13:49:16 1500

原创 B树和B+树

B树上图是一颗完整的5阶B树,符合以下特点:对于一个m阶B树,每个节点最多有m个分支;根节点且不是叶子节点则至少有2个分支,而非根非叶节点至少有m/2(上取整)个分支。有n(k <= n <= m)个分支的节点有n-1个关键字,它们按递增排列,k = 2(根节点)或m/2(上取整)节点内各关键字互不相等叶节点处于同一层,可以用空指针表示,是查找失败到达的位置每个节点存储m-1个key和m个指针,指针Pi所指向的节点关键字小于Keyi+1大于KeyiB树的查找从根节点开始从左

2021-08-30 15:54:49 755

原创 二进制数中1的个数

int cnt = 0;while(num){ num = num & (num - 1); cnt++;}

2021-08-08 15:37:49 165

原创 位运算判断奇偶性

string s = num & 1 ? "偶" : "奇";

2021-08-08 09:07:12 492

原创 简单文本编辑器

简单文本编辑器。该程序可以新建、打开、编辑和保存文本文件。当用户点击New时,新建一个文件,用户可以编辑文件内容,然后点击Save保存文件。用户点击Open时,选择一个已有文件,然后可对文件进行编辑。示例输出如图所示。package priv.lhw.text.editor;import javax.swing.*;import java.awt.*;public class TextEditorFrame extends JFrame { JTextArea jTextArea = n

2021-07-29 12:42:19 1215

原创 Java风扇

风扇。编写程序,显示3个风扇,用控制按钮开动和停止风扇。可以同时开动和停止3个风扇,也可以分别开动和停止每一个风扇。输出示例如图所示。import javax.swing.*;import java.awt.*;import java.awt.geom.Arc2D;import java.awt.geom.Ellipse2D;public class Main { public static void main(String[] args) { EventQueue.in

2021-07-29 12:42:06 1056 2

原创 文本文件处理

编写程序,统计英文文本文件中的字符数目和单词数目。程序运行时,输入要统计的文件的名称,程序处理后输出字符数目和单词数目。package priv.lhw.file.processing;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.util.Scanner;public class Main { public static void main(String[]

2021-07-29 12:41:53 160

原创 Java弹球程序

该程序通过一个发射按钮可以发射一个弹球,该球遇到边界时会自动弹回,在移动固定次数后,该球停止运动。要求每次点击发射按钮都会发射一个弹球,如果点击多次,则多个弹球同时运动。该程序通过另一个结束可以结束程序的运行。package priv.lhw.pinball;import java.awt.geom.Ellipse2D;import java.awt.geom.Rectangle2D;import java.util.Random;public class Ball { private

2021-07-29 12:41:42 443

原创 生产者消费者

编写程序,实现生产者和消费者问题。输入:由英文字母和数字组成的不定长度字符串数组,例如{“abc”,”23d”,”1a”}。每隔100毫秒,生产者线程读入数据,放入生产者公用的仓库;消费者从仓库中取出字符串,进行倒置,如上例{“cba”,”d32”,”a1”}; 输出:倒置后的字符串。package bounded.buffer.problem;import java.util.ArrayList;import java.util.Arrays;import java.util.Scanner;

2021-07-29 12:41:32 381

原创 猜数小游戏

编写一个猜数程序,该程序随机在1到1000的范围中选择一个供用户猜测的整数。界面上提供一个文本框来接收用户输入的猜测的数,如果用户猜得太大,则背景变为红色,如果猜得太小,背景变为蓝色。用户猜对后,文本框变为不可编辑,同时提示用户猜对了。界面上提供一个按钮,使用户可以重新开始这个游戏。在界面上还需显示用户猜测的次数。示例输出如下图所示。package priv.lhw.guess.number;import javax.swing.*;import java.awt.*;import java.ut

2021-07-29 12:41:22 330

原创 VMWare Linux虚拟机磁盘扩容(Cent OS)

第一步如果显示无法扩展,则需要把已经存在的快照删除即可Ctrl + M进入快照管理器。删除已存在快照扩容第二步df -h查看文件系统,我们要对根进行扩容fdisk -l,查看硬盘情况fdisk /dev/sda,进行分区,依次输入以下命令fdisk -l,查看新加的分区重启虚拟机pvcreate /dev/sda3,创建物理卷vgdisplay,查看当前卷组情况vgextend /dev/centos /dev/sda3,扩展卷组lvextend -L +16G /

2021-07-16 17:36:54 259

原创 Java显示表情

编写程序,显示不同的表情。在窗口上至少包括4个按钮,分别控制显示不同的表情和退出程序。示例输出如下图所示。package priv.lhw.show.expression;import javax.swing.*;public class Main { public static void main(String[] args) { // write your code here MyFrame myFrame = new MyFrame(); myFr

2021-07-01 15:05:17 379

原创 绘制随机图像

定义4个类,MyShape、MyLine、MyRectangle和MyOval,其中MyShape是其他三个类的父类。MyShape为抽象类,包括图形位置的四个坐标;一个无参的构造方法,将所有的坐标设置为0;一个带参的构造函数,将所有的坐标设置为相应值;每个坐标的设置和读取方法;abstract void draw(Graphics g)方法。MyLine类负责画直线,实现父类的draw方法;MyRectangle负责画矩形,实现父类的draw方法;MyOval负责画椭圆,实现父类的draw方法。编写一个应

2021-07-01 15:04:01 409

原创 Java显示时钟

显示时钟。编写程序显示一个时钟。示例输出如下图所示。package priv.lhw.show.clock;import javax.swing.*;import java.awt.*;public class MyFrame extends JFrame { public MyFrame(){ Toolkit toolkit = Toolkit.getDefaultToolkit(); Dimension dimension = toolkit.get

2021-07-01 14:59:29 781

原创 显示函数图像

显示函数图像。编写程序,画出函数f(x)=x*x的图像。输出示例如下图所示。package priv.lhw.function.image;import javax.swing.*;import java.awt.*;import java.awt.geom.Line2D;import java.awt.geom.Point2D;public class Function extends JPanel { public static final double ACCURACY = 0.

2021-07-01 14:58:03 994

原创 Employee类层次结构

创建四个类,分别为Employee类、SalariedEmplyee类、HourlyEmployee类和CommissionEmployee类。其中Employee类是其他三个类的父类。Employee类包含姓名和身份证号。除此之外,SalariedEmployee类还应包含每月工资;HourlyEmployee类还应包含每小时工资数和工作时间数;CommissionEmployee还应包含提成比例和销售总额。每个类都应有合适的构造方法、数据成员的设置和读取方法。编写一个应用程序,创建这些类的对象,并输出与

2021-07-01 14:56:35 1008

原创 图书借阅程序

编写三个类,图书类、学生类和测试类,可以处理简单的书籍借阅情况,包括借书和还书等。图书类的数据成员包括书名、书号和借书学生等;方法包括借书、还书和显示书籍信息等。学生类的数据成员包括姓名、学号和所借书籍等;方法包括显示学生信息等。测试类是一个应用程序,在该程序中创建图书类和学生类对象,完成图书的借阅和归还。package priv.lhw.bookborrowing;import java.util.Objects;public class Book { /** 书名 */ pri

2021-07-01 14:54:27 1433 1

原创 复数类Java实现

编写一个复数类,可以进行复数加法和减法运算。编写一个包含main方法的类(应用程序)测试该复数类。要求该复数类至少包含一个无参的构造方法和一个带参的构造方法;数据成员包括复数的实部和虚部,为double类型;包括两个方法,分别实现复数的加法和减法运算。示例输出如图所示。package com.company;import javax.swing.*;class Complex{ /** 实部 */ private final double real; /** 虚部 */

2021-07-01 14:52:23 3044

原创 三子棋Java实现

编写程序,实现简单的三子棋游戏。在三子棋中,双方在33的棋盘中轮流下棋,一方用表示,另一方用O表示。如果一方的3个棋子占据了同一行,同一列或者对角线,则该方获胜。如果棋盘已被棋子占满,但没有一方获胜则出现平局。在程序中,一方为用户,用户在界面上输入每次下棋的位置;另一方下棋的位置为随机自动生成。示例输出如图所示。import java.util.Random;import javax.swing.*;class CheckerBoard{ /** * BOUNDARY 棋盘边界

2021-07-01 14:50:08 998

验证回文串

验证回文串。编写程序,验证一个字符串是否为回文串:是否从前读它和从后读它都是一样的。例如,mom,dad是回文串。该程序接收用户输入的字符串,判断是否为回文串,然后将判断的结果输出。在验证回文串时,忽略大小写、空格和标点。示例输出如图1、图2所示。import javax.swing.JOptionPane;public class PalindromeString { /** * 预处理方法,因为奇回文和偶回文在判断时比较麻烦所以对原字符串进行预处理, * 把每个字符

2021-07-01 14:48:53 870

原创 NoSQL数据库

NoSQL在大数据体系中的作用数据存储工具把数据存储或映射为表格形式把数据存储成适于使用的模式实现分布式存储数据管理工具对数据“库”、“表”或类似的概念进行管理对存储的数据进行管理,对数据的性能和可靠性等进行管理对分布式系统进行管理,对系统的配置方式、运行状态等进行管理数据查询工具快速查询海量数据提供易用的客户访问接口一般无法进行过于复杂的查询,或查询性能极低NoSQL一般不会提供实时数据采集功能提供复杂的数据预处理、数据分析、数据挖掘等功能提供完整的

2021-07-01 13:39:03 1070

原创 全球变暖

题目你有一张某海域 N×N 像素的照片,”.”表示海洋、”#”表示陆地,如下所示:........##.....##........##...####....###........其中”上下左右”四个方向上连在一起的一片陆地组成一座岛屿,例如上图就有 2 座岛屿。由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋),它就会被淹没。例如上图中的海域未来会变成如下样子:.......

2021-03-03 14:49:10 147 4

原创 红与黑

题目有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻(上下左右四个方向)的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入格式输入包括多个数据集合。每个数据集合的第一行是两个整数 W 和 H,分别表示 x 方向和 y 方向瓷砖的数量。在接下来的 H 行中,每行包括 W 个字符。每个字符表示一块瓷砖的颜色,规则如下1)‘.’:黑色的瓷砖;2)‘#’:红色的瓷砖;3)‘@’:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每个数

2021-03-03 14:16:00 98

原创 地牢大师

题目你现在被困在一个三维地牢中,需要找到最快脱离的出路!地牢由若干个单位立方体组成,其中部分不含岩石障碍可以直接通过,部分包含岩石障碍无法通过。向北,向南,向东,向西,向上或向下移动一个单元距离均需要一分钟。你不能沿对角线移动,迷宫边界都是坚硬的岩石,你不能走出边界范围。请问,你有可能逃脱吗?如果可以,需要多长时间?输入格式输入包含多组测试数据。每组数据第一行包含三个整数 L,R,C 分别表示地牢层数,以及每一层地牢的行数和列数。接下来是 L 个 R 行 C 列的字符矩阵,用来表示每一层

2021-03-03 13:46:59 163

原创 加快cin

ios::sync_with_stdio(false);cin.tie(0);即使这样,在大量输入的情况下cin还是没有scanf快

2021-03-03 13:43:57 135

原创 交换瓶子

题目有 N 个瓶子,编号 1∼N,放在架子上。比如有 5 个瓶子:2 1 3 5 4要求每次拿起 2 个瓶子,交换它们的位置。经过若干次后,使得瓶子的序号为:1 2 3 4 5对于这么简单的情况,显然,至少需要交换 2 次就可以复位。如果瓶子更多呢?你可以通过编程来解决。输入格式第一行包含一个整数 N,表示瓶子数量。第二行包含 N 个整数,表示瓶子目前的排列状况。输出格式输出一个正整数,表示至少交换多少次,才能完成排序。数据范围1≤N≤10000,输入样例1:53 1 2

2021-03-03 10:36:09 107

原创 负数取模为正数

(a % b + b) % b

2021-02-28 10:33:28 2401 3

原创 不使用额外空间交换两个数

方法一a = a + b;b = a - b;a = a - b;方法二a = a ^ b;b = a ^ b;a = a ^ b;

2021-02-28 10:32:04 197

原创 日期问题

题目小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。给出一个文献上的日期,你能帮助小明判断有哪些可能的日期对其对应吗?输入格式一个

2021-02-28 10:27:16 85

原创 外卖店优先级

题目“饱了么”外卖系统中维护着 N 家外卖店,编号 1∼N。每家外卖店都有一个优先级,初始时 (0 时刻) 优先级都为 0。每经过 1 个时间单位,如果外卖店没有订单,则优先级会减少 1,最低减到 0;而如果外卖店有订单,则优先级不减反加,每有一单优先级加 2。如果某家外卖店某时刻优先级大于 5,则会被系统加入优先缓存中;如果优先级小于等于 3,则会被清除出优先缓存。给定 T 时刻以内的 M 条订单信息,请你计算 T 时刻时有多少外卖店在优先缓存中。输入格式第一行包含 3 个整数 N,M,T。

2021-02-28 10:24:39 366

原创 C++ 快读模板

代码#include <iostream>using namespace std;inline int read(){ int x=0,f=1;char ch=getchar(); while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();} while (isdigit(ch)){x=x*10+ch-48;ch=getchar();} return x*f;}int main(){ int

2021-02-28 10:16:41 249

原创 C++ 实现前缀和

代码数组下标从1开始#include <iostream>using namespace std;const int N = 100010;int n, m;int s[N];int a, b;int main(){ cin >> n >> m; for(int i = 1; i <= n; i++){ cin >> s[i]; s[i] += s[i-1]; }

2021-02-28 10:15:19 307

FileTool.rar

解决VC++6.0添加文件奔溃问题

2021-04-23

cf-predictor.crx

codeforces rating 预测插件,拖动至Chrome即可安装

2021-02-08

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

TA关注的人

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