自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Docker 学习笔记

编写好了Dockerfile之后,使用 docker build 命令构建镜像注意:Dockerfile 文件必须叫Dockerfile,不能改成其他的名字将资料里的demo文件夹上传到 /root。jdk.tar最好也上传到虚拟机,否则还要下载 openjdk 基础镜像cd /rootdocker load -i jdk.tar # openjdk基础镜像docker build -t docker-demo . # 构建镜像docker ps。

2024-06-29 10:00:12 1165 1

原创 SpringBoot 搭建sftp服务 实现远程上传和下载文件

maven依赖:</</</</注:springboot自带的tomcat会限制上传文件的大小,需要在yml文件里手动设置max-file-size。

2024-06-22 21:02:30 531

原创 使用TUDataset 报错LocalFileSystem.mv() takes 3 positional arguments but 4 were given

是由于 torch_geometric 版本太高导致的如果直接 pip install torch_geometric,会下载到最新版本的torch_geometric(如2.5.3)

2024-06-10 20:25:53 717 3

原创 决策树、随机森林

如果用pk(1-pk)来算,一般要乘以2,比如p1(1-p1) = 3/5 * 2/5,p2(1-p2) = 2/5 * 3/5,他们是对称的关系。随机森林的训练效率高于bagging(从子集选取特征,计算加快),泛化误差低于bagging(随机选取特征,各个决策树间差异变大,更不容易过拟合)。如果特征有多个离散取值,比如0,1,2,则特征按是0和不是0,是1和不是1,是2和不是2来分。C(Tt)是剪枝前的,C(t)是剪枝后的,剪枝后根结点变成了叶子结点,所以|T|=1,只剩下一个α。

2024-04-20 14:22:46 712 3

原创 考研机试题 -- 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 581

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

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 673 1

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

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

2023-04-01 06:45:02 489

原创 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 1908

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

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

2022-04-20 20:26:21 2246

原创 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 245

原创 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 363

原创 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 401

原创 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 7987 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 298 1

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

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

2021-02-05 20:36:42 1625 6

原创 会话技术及Session和Cookie

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

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

原创 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 2004 2

原创 洛谷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 348 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 832

原创 蓝桥杯 调手表【BFS】

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

2020-11-10 20:14:27 301

原创 第十届蓝桥杯国赛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 419 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 228

原创 洛谷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 327

原创 洛谷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 313

原创 洛谷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 333

原创 洛谷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 303

原创 洛谷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 198

原创 洛谷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 249

原创 洛谷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 252

原创 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 3531

原创 洛谷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 636

原创 洛谷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 160

原创 洛谷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 505

原创 洛谷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 270

原创 AcWing 845. 八数码【BFS】

题目链接:845. 八数码 在一个3×3的网格中,1~8这8个数字和一个“x”恰好不重不漏地分布在这3×3的网格中。例如:1 2 3x 4 67 5 8在游戏过程中,可以把“x”与其上、下、左、右四个方向之一的数字交换(如果存在)。我们的目的是通过交换,使得网格变为如下排列(称为正确排列):1 2 34 5 67 8 x例如,示例中图形就可以通过让“x”先后与右、下、右三个方向的数字交换成功得到正确排列。交换过程如下:1 2 3 1 2 3 1 2 3 1 2 3

2020-11-01 11:09:40 174

原创 洛谷P1536 村村通【并查集】

题目链接:P1536 村村通程序说明:n个集合需要用n - 1条线连接起来,因此合并完集合后,循环遍历所有点,记录集合的总数,减一则为正确答案代码如下:#include <iostream>using namespace std;const int N = 1010;int p[N], n, m;int find(int x) { if(p[x] != x) p[x] = find(p[x]); return p[x];}int main() {

2020-11-01 10:10:22 355

原创 蓝桥杯 激光样式【DFS】

x星球的盛大节日为增加气氛,用30台机光器一字排开,向太空中打出光柱。安装调试的时候才发现,不知什么原因,相邻的两台激光器不能同时打开!国王很想知道,在目前这种bug存在的情况下,一共能打出多少种激光效果?显然,如果只有3台机器,一共可以成5种样式,即:全都关上(sorry, 此时无声胜有声,这也算一种)开一台,共3种开两台,只1种30台就不好算了,国王只好请你帮忙了。要求提交一个整数,表示30台激光器能形成的样式种数。正确答案:2178309代码如下:#include <ios

2020-10-31 13:43:33 252

原创 蓝桥杯 平方十位数【DFS】

由0~9这10个数字不重复、不遗漏,可以组成很多10位数字。这其中也有很多恰好是平方数(是某个数的平方)。比如:1026753849,就是其中最小的一个平方数。请你找出其中最大的一个平方数是多少?程序说明:注意开long long代码如下:#include <iostream>#include <cmath>using namespace std;int book[11], st[11];long long res;long long trans() {

2020-10-30 19:38:42 151

原创 洛谷P1145 约瑟夫

题目链接:P1145 约瑟夫程序说明:模拟,假设数到m杀一个,剩余n个人,从第i号人开始数数,下一个杀掉的是第i+m-1(i+m-1<n)个人。到后面i+m-1可能会超过n,要回到开头数,所以杀掉的是(i+m-1-1)%n+1个人只要杀的人的编号>k就不是好人注意下标从0开始。代码如下:#include <iostream>using namespace std;int k;int main() { cin>>k; int m = k + 1

2020-10-28 12:48:19 1016 1

原创 洛谷P1996 约瑟夫问题【队列】

题目链接:P1996 约瑟夫问题#include <iostream>#include <queue>using namespace std;int n, m, cnt = 1;int main() { queue<int> q; cin>>n>>m; for(int i = 1; i <= n; i++) q.push(i); while(n) { i

2020-10-28 09:09:18 334

空空如也

空空如也

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

TA关注的人

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