自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cutlery1137的博客

IT'S NOT ENOUGH!

  • 博客(188)
  • 收藏
  • 关注

原创 考研机试题 -- DFS、模拟、递推、BFS

一个易错点:如果不开 path 数组,直接用 res 数组去记录答案(即19行的代码换成 res[k][u] = i)会出错,原因是回溯时可能不会回溯到 u = 1,此时 k 自增以后导致 res[k][1] 值为 0。(a + b) mod p = (a mod p + b mod p) mod p,适用于加减乘法,除法不适用。也可以每次输入b时都执行一次dfs,但那样就慢了;库函数:注意algorithm头文件。

2023-04-01 07:00:55 370

原创 考研机试题 -- 字符串、背包、枚举

f[i][j]等于两个子集合的方案数相加,即f[i][j] = f[i - 1][j] + f[i - 1][j - wi]双关键字排序,如何分割字符串(stringstream),如何从一个字符串中读数据(sscanf)如何读入一行字符串(getline),如何分开每个单词,如何转大写(toupper)f[i][j]表示从前 i 个物品中任选,总重量不超过 j 的集合,其属性为最大价值。f[i][j]表示前 i 个物品任选,总体积恰好为 j 的总方案数。f[i][j]表示从前 i 个物品中任选,总重量。

2023-04-01 06:54:16 412 1

原创 考研机试题 -- 排序、进位制、日期

枚举a会超时,枚举m不会。

2023-04-01 06:45:02 382

原创 红黑树插入结点

红黑树

2023-02-05 22:09:20 292

原创 Layui + PageHelper 分页查询

Layui的分页查询layui向后端发请求,url后面会自动带上 page=1&limit=10传统的分页查询select * from 表名 limit m, n 从第m+1行开始取n条数据使用PageHelper导入maven依赖:<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> &

2022-04-21 17:04:51 1804

原创 Layui 数据表格json格式问题

Layui 数据表格的json格式,后端传到前端的json格式

2022-04-20 20:26:21 2100

原创 leetcode 27. 移除元素【双指针】

27. 移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。程序说明:设置两个指针,i 负责遍历数组,j 指向值等于val的位置。i 指针遍历数组,当nums[i] == val时,跳过此次循环;当nums[i] != val时,把nums[i] 复制到 j 指向的位置,并且 j++。

2022-02-18 04:04:57 285

原创 leetcode 58. 最后一个单词的长度

58. 最后一个单词的长度给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。示例 1:输入:s = “Hello World”输出:5示例 2:输入:s = " fly me to the moon "输出:4示例 3:输入:s = “luffy is still joyboy”输出:6代码如下:class Solution { public int len

2022-02-10 23:02:07 171

原创 leetcode 67. 二进制求和

67. 二进制求和给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。示例 1:输入: a = “11”, b = “1”输出: “100”示例 2:输入: a = “1010”, b = “1011”输出: “10101”程序说明:从低位开始,某一位的值,等于上一位两个数的和再加上进位。要分a比b长,和b比a长两种情况。注意最后还要判断一下carry是否为0,如果不为0则补一位1。代码如下:class Solution {

2022-02-09 23:14:39 289

原创 leetcode 66. 加一【数学】

题目链接:66. 加一给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例 2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digits = [0]输出:[1]提示:1

2022-02-09 20:50:05 308

原创 leetcode 9. 回文数

9. 回文数给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true示例 2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10输出:false解释:从右向左读, 为 01 。因此它不是一个回文数。

2022-02-06 22:25:12 435

原创 leetcode 3. 无重复字符的最长子串【滑动窗口】【哈希表】

3. 无重复字符的最长子串给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度

2022-02-06 20:54:27 105

原创 leetcode 1. 两数之和【枚举】【哈希表】

题目链接:1. 两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。程序说明:对于数组中每一个数,找是否存在另一个数,二者相加等于target。循环遍历数组的时间复杂度为o(n),可以用哈希表优化成o(1)。总的时间复杂度从o(n^2)优化为o(n)。暴力枚举1class Soluti

2022-02-06 19:16:02 99

原创 对HttpServlet的一些理解

doGet()方法和doPost()方法的原理为什么HttpServlet中要区分doGet()和doPost()两个方法?前端发送GET和POST请求的时候,参数的位置不一致,GET请求参数在请求行中,POST请求参数在请求体中。如果仅仅只是在servlet的service()方法中写分支语句,判断是GET还是POST,效率比较低。因此由HttpServlet把相关的分支操作封装起来,继承HttpServlet的子类只需重写doGet()方法和doPost()方法就可以区分两种请求。//手写M

2022-02-06 12:52:23 313

原创 Java 子类和父类同名属性

继承的本质/内存图属性访问的顺序:案例1public class Test { public static void main(String[] args) { B b = new B(); //子类对象 b.i = 200; b.B(); }}class A { int i = 10; public void A() { System.out.println(i); }}class B e

2022-01-20 12:21:41 6909 2

原创 PL/SQL语法总结

hello worldsqldeveloper菜单栏–>查看–>DBMS输出sqlplus界面,最后加上/才能执行程序,输入set serveroutput on回车后才能显示输出的结果begin dbms_output.put_line('hello world');end;普通变量赋值两种办法,:=或者select intodeclare v_no char(5) := '002'; v_name varchar2(10);begin sel

2021-03-09 23:05:35 218 1

原创 火狐浏览器关闭百度热榜(屏蔽网站特定元素)

火狐浏览器不能下载 uBlock Origin解决方法:https://github.com/AdguardTeam/AdguardBrowserExtension/releases。

2021-02-05 20:36:42 1241 5

原创 JavaBean和BeanUtils总结

JavaBeanJavaBean是一个标准的java类,用于封装数据,要求:类必须被public修饰必须提供空参的构造器成员变量必须被private修饰提供公共setter和getter方法User.javapublic class User { private String name; private int age; public String getName() { return name; } public void setN

2021-01-05 18:57:34 242 1

原创 会话技术及Session和Cookie

会话服务器无法识别每一次 HTTP 请求的出处(不知道来自于哪个终端),它只会接受到一个请求信号。通过会话技术,可以让服务器知道请求来自哪个用户。会话就是客户端和服务器之间发生的一系列连续的请求和响应的过程,打开浏览器进行操作到关闭浏览器的过程。为了保存会话过程中产生的数据,Servlet提供了两个用于保存会话数据的对象:Session和Cookie。Session属于同一次会话的请求都有一个相同的标识符, sessionID(注:刷新或者打开新页面都属于同一次会话,sessionID相同)。Ses

2020-12-17 18:18:48 235 2

原创 JDBC和C3P0用法总结

import java.sql.*;public class Test_JDBC { public static void main(String[] args) { try { //加载驱动 Class.forName("com.mysql.cj.jdbc.Driver"); //获取连接 //为避免报错和乱码,url需要加一些参数如下所示 String ur

2020-12-15 22:01:19 375

原创 html+css+JavaScript实现导航栏

无下拉菜单的导航栏<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> * {

2020-11-28 22:52:17 1855 2

原创 Servlet实现页面跳转

请求重定向web服务器接收到客户端的请求后,可能由于某些条件限制,不能访问当前请求url所指向的web资源,而是指定了一个新的资源路径,让客户端重新发送请求。地址栏会变成重定向之后页面的url。方法一:response对象的setHeader()方法//2秒后跳转到指定的urlresponse.setHeader("Refresh", "2;url=https://www.baidu.com");方法二:sendRedirect()方法response.sendRedirect("https:

2020-11-28 00:33:42 1585

原创 ServletConfig和ServletContext

ServletConfig接口Tomcat初始化一个Servlet时,会将该Servlet的配置信息封装在一个ServletConfig对象中,通过调用init(ServletConfig config)方法将ServletConfig对象传递给Servlet。常用方法:String getInitParameter(String name)//根据初始化参数名返回对应的初始化参数值Enumeration getInitParameterNames() //返回一个Enumeration对象,其中包

2020-11-27 21:39:52 217

原创 洛谷P1087 FBI树【二叉树遍历】

题目链接:P1087 FBI树程序说明:后序遍历+判断条件,注意indexOf()可以判断子串是否存在(一开始没想到用indexOf)代码如下:import java.util.*;import java.io.*;public class Main { public static void main(String[] args) { String s = new String(); int n; Scanner in = new Sca

2020-11-12 12:48:49 265 1

原创 蓝桥杯 机器人塔【DFS】

X星球的机器人表演拉拉队有两种服装,A和B。他们这次表演的是搭机器人塔。类似: A B B A B A A A B B B B B A BA B A B B A队内的组塔规则是:A 只能站在 AA 或 BB 的肩上。B 只能站在 AB 或 BA 的肩上。你的任务是帮助拉拉队计算一下,在给定A与B的人数时,可以组成多少种花样的塔。输入一行两个整数 M 和 N,空格分开(0< M,N<500),分别表示A、B的人数,保证人数合理性。要求输出一个整数,

2020-11-10 23:07:28 759

原创 蓝桥杯 调手表【BFS】

小明买了块高端大气上档次的电子手表,他正准备调时间呢。在 M78 星云,时间的计量单位和地球上不同,M78 星云的一个小时有 n 分钟。大家都知道,手表只有一个按钮可以把当前的数加一。在调分钟的时候,如果当前显示的数是 0 ,那么按一下按钮就会变成 1,再按一次变成 2 。如果当前的数是 n - 1,按一次后会变成 0 。作为强迫症患者,小明一定要把手表的时间调对。如果手表上的时间比当前时间多1,则要按 n - 1 次加一按钮才能调回正确时间。小明想,如果手表可以再添加一个按钮,表示把当前的数加 k 该多

2020-11-10 20:14:27 216

原创 第十届蓝桥杯国赛C/C++ B组第2题【01背包】

2019可以被分解成若干个两两不同的素数,请问不同的分解方案有多少种?注意:分解方案不考虑顺序,如2+2017=2019和2017+2=2019属于同一种方案。程序说明:分解成若干个,不是分解成两个,注意看题。f[i][j] 表示从前 i 个数中选,相加等于 j 的所有方案数。类似于01背包问题,只不过存的是方案数。如果j < prime[i],即加上第 i 个质数就会超出背包的容量,则f[i][j] = f[i - 1][j]如果j >= prime[i],即加上第 i 个质数不会

2020-11-07 17:26:42 340 3

原创 洛谷P1734 最大约数和【01背包】

题目链接:P1734 最大约数和代码如下:#include <iostream>using namespace std;const int N = 1010;int n, v[N], f[N][N], w[N];int main() { cin>>n; //预处理每个数的约数和 for(int i = 1; i <= n; i++) for(int j = 1; j < i; j++) if

2020-11-07 15:29:58 169

原创 洛谷P1516 青蛙的约会【扩展欧几里得算法】

题目链接:程序说明:问题转化为求解线性同余方程:x + k * m ≡ y + k * n (mod L)方程等价于:x + k * m = z * L + y + k * n合并同类项,化简后得:k * (n − m) + z * L = x - y (将负号化为正号方便处理)设 a = n - m,b = L,c = x - y,即求线性方程:a * k + b * z = c 的解,扩展欧几里得求出整数解k,再扩大 c / gcd(a,b)倍即为方程的通解。需要注意的地方有两点:n - m

2020-11-07 12:45:15 237

原创 洛谷P1194 买礼物【最小生成树】

题目链接:P1194 买礼物程序说明:优惠大于0时建边,跑一边kruskal求最小生成树即可。需要注意的地方是,有可能优惠后的价格比原价还高。。因此需要加一个判断条件。代码如下:#include <iostream>#include <algorithm>using namespace std;const int M = 510;struct Edge { int a, b, w; bool operator < (const Edge &a)

2020-11-05 13:12:27 241

原创 洛谷P1403 [AHOI2005]约数研究【数论】

题目链接:P1403 [AHOI2005]约数研究程序说明:[1,n]的所有整数中p的倍数的个数:⌊\lfloor⌊np\frac{n}{p}pn​⌋\rfloor⌋代码如下:#include <iostream>using namespace std;int n, res;int main() { cin>>n; for(int i = 1; i <= n; i++) ans += n / i; cout<<res

2020-11-04 21:18:14 250

原创 洛谷P2071 座位安排【二分图最大匹配】

题目链接:P2071 座位安排程序说明:可以把右边的一列座位放在左边一列的后面,第 i 排左边的编号为 i ,右边的编号为 i + n。二分图的最大匹配可以用匈牙利算法求解。注意每个点连四条边,数组要开四倍大小。代码如下:#include <iostream>#include <cstring>using namespace std;const int N = 10100, M = 2 * N;int h[N], e[M], ne[M], idx, res;in

2020-11-04 15:30:51 198

原创 洛谷P1330 封锁阳光大学【二分图】

题目链接:P1330 封锁阳光大学程序说明:题意为判断无向图是否为二分图,可以用dfs染色。-1表示没访问过,0和1表示将顶点染成两种不同的颜色,如果一条边相邻的两个顶点被染成了相同的颜色,则可以判断出不是二分图。如果是二分图,需要记录1和0的个数,较小者即为答案。代码如下:#include <iostream>#include <cstring>using namespace std;const int N = 10010, M = 100010;int h[N

2020-11-03 21:59:17 143

原创 洛谷P1195 口袋的天空【最小生成树】

题目链接:P1195 口袋的天空程序说明:最小生成树的裸题,代码如下:#include <iostream>#include <algorithm>using namespace std;const int N = 1010, M = 10010;int n, m, k, p[N];struct Edge { int a, b, w; bool operator < (const Edge &W) const { return w <

2020-11-03 16:36:12 167

原创 洛谷P1144 最短路计数【最短路】

题目链接:P1144 最短路计数程序说明:如果搜索到的点到起点的距离等于当前点到起点的距离加上这两点间的那条边的距离,那么我们就将搜索到的点的路径数加上当前点的路径数。如果我们更新了搜索到的点到起点的最短距离,那么我们将到达改点的路径数改为当前点的路径数。(参考P1608 路径统计 题解)因此将spfa的松弛操作修改为://cnt[]记录路径数if(dist[j] > dist[t] + 1) { dist[j] = dist[t] + 1; cnt[j] = cnt[t]; }

2020-11-03 11:30:48 187

原创 DFS判断有向图是否存在环

st数组记录每个点的状态:0表示没访问过,1表示访问过,2表示与该点相邻的点都被访问过。dfs深搜如果遇到被标记成1的点,就说明有环。#include <iostream>using namespace std;const int N = 1010;int g[N][N], n, m, st[N], flag = 1;void dfs(int k) { st[k] = 1; for(int i = 1; i <= n; i++) { if(g[k][i]) { //和

2020-11-02 20:50:19 2990

原创 洛谷P1396 营救【最小生成树】【最短路】

题目链接:P1396 营救程序说明:法一:kruskal求最小生成树,当s和t连通时,此时边的权值w就是题中要求的最小的最大值(因为边是从小到大排序的)。法二:spfa求最短路。分析可知要让每段路的权值都尽可能小,所得到的路径不一定是从s到t的最短路,但是可以利用最短路的模板来解决:取两条边权值的较大者,如果比第三条边小,则更新。只需将spfa中的松弛操作:if(dist[j] > dist[t] + w[i]) dist[j] = dist[t] + w[i];改为:int t

2020-11-02 16:40:49 463

原创 洛谷P1226 【模板】快速幂||取余运算

题目链接:P1226 【模板】快速幂||取余运算程序说明:注意开long long。res最后还要再模一次k,因为指数有可能等于0。代码如下:#include <iostream>#include <cstdio>using namespace std;typedef long long LL;LL fun(LL b, LL p, LL k) { LL res = 1; while(p) { if(p & 1) res =

2020-11-01 23:35:52 122

原创 洛谷P1629 邮递员送信【最短路】

题目链接:P1629 邮递员送信程序说明:注意每次只能拿一件物品,送到目的地后必须返回起点才能送下一件。因此可以将题目转化为:从1号点到其余各点的最短路,再加上其余各点到1号点的最短路即为正确答案。求多个点到1号点的最短路,可以将邻接矩阵坐标互换(即将有向图反转)。代码如下:#include <iostream>#include <cstring>using namespace std;const int N = 1010, M = 100010;int g[N

2020-11-01 21:54:30 410

原创 洛谷P1525 关押罪犯【并查集】【二分图】

题目链接:P1525 关押罪犯程序说明:贪心思想,想要将怨气值最小化,就要优先处理怨气值大的两个顶点,将他们分别放在不同的集合。enemy数组记录敌人,每次把与自己敌对的人放进一个集合。代码如下:#include <iostream>#include <cstdio>#include <algorithm>using namespace std;const int N = 20010, M = 100010;//enemy[i]表示i的敌人 int

2020-11-01 15:35:40 211

空空如也

空空如也

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

TA关注的人

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