自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【人工智能与深度学习】K-means算法

K-means算法是一种常见的无监督学习算法,其目的是将一组数据点分成K个簇,每个簇的数据点与其它簇的数据点相似度较低。这个算法可以用于许多领域,例如数据挖掘、图像处理和自然语言处理等。

2023-03-17 15:53:19 915

原创 【人工智能与深度学习】KNN算法学习

其中:n_neighbors:这个值就是指 KNN 中的 “K”了。前面说到过,通过调整 K 值,算法会有不同的效果。weights(权重):最普遍的 KNN 算法无论距离如何,权重都一样,但有时候我们想搞点特殊化,比如距离更近的点让它更加重要。这时候就需要 weight 这个参数了,这个参数有三个可选参数的值,决定了如何分配权重。参数选项如下:‘uniform’:不管远近权重都一样,就是最普通的 KNN 算法的形式。‘distance’:权重和距离成反比,距离预测目标越近具有越高的权重。

2023-03-17 15:35:56 452

原创 树莓派4b 8GB Ubuntu22 64位 安装WiringPi

这里写自定义目录标题环境以及设备需求问题引出解决方案环境以及设备需求1.树莓派4b 8GB2.Ubuntu22 64位3.安装了gcc环境问题引出1.使用 apt-get install wiringpi 版本为2.5,无法使用,报错代码17 Oops - unable to determine board type… model: 172.使用如下代码cd /tmpwget https://project-downloads.drogon.net/wiringpi-latest.deb

2022-05-01 21:31:15 1933 2

原创 IDEA 普通项目改maven maven项目变普通项目

开发环境IJ IDEA 2021.3.2Java 1.8.0_321普通项目变Maven在资源库下新建文件pom.xml , 右键 -> add as maven projectMaven变普通项目右键pom.xml -> Maven -> Unlink Maven Project -> Remove即可

2022-02-13 21:18:36 1332 3

原创 SpringBoot 整合websocket 测试出错

问题描述javax.websocket.server.ServerContainer not available问题起因一般情况下,使用@SpringBootTest后,Spring将加载所有被管理的bean,基本等同于启动了整个服务,此时便可以开始功能测试。由于web服务是最常见的服务,且我们对于web服务的测试有一些特殊的期望,所以@SpringBootTest注解中,给出了webEnvironment参数指定了web的environment,该参数的值一共有四个可选值:MOCK:此值为默

2021-11-13 19:47:41 1315

原创 Java 串口通讯开发实录

运行环境配置1.Java运行环境:客户端必须使用JDK1.8_231(64以及32位)及更早版本,为了适配串口通讯rxtxParallel.dll和rxtxSerial.dll2.外部导入的jar包串口通讯jar包RXTX ---- RXTXcomm.jar其文件夹中,RXTXcomm.jar导入,rxtxParallel.dll和rxtxSerial.dll放入 %JAVA_HOME%\bin3.串口操作类其中msgQueue中存放了读取的串口信息,可以自定自己想要的存储类型,Blo

2021-07-23 15:55:34 281

原创 数据结构课程设计——随机迷宫和寻路

实验要求实验的要求是生成一个迷宫,然后找出迷宫从入口到出口的路径,考察了学生的数据结构编辑能力和递归非递归的实现能力。 迷宫问题每走一步要看到后面几步,遇到死胡同及时回头,重新寻找出路。计算机术语称为回溯,而实现回溯的方法有:递归方式和非递归方式。本实验设计的迷宫问题应该包含以下功能:(1)迷宫大小可以定义(2)迷宫入口默认为左上角,出口默认为右下角(也可自定义(3)给出迷宫的生成和求解过程代码#include<iostream>#include<cstdlib&gt

2021-04-15 18:53:25 620 2

原创 软件构造作业——100道算术题

基本构想我的想法是用map来哈希字符串,这样对每一个已经用过的算式进行散列标记,来达到去重的效果要求要求是低内聚高耦合,所以要写好几个类来进行封装,达到作用端口的多元化co.javapackage newp;import java.util.Scanner;public class co{ public static void main(String [] args) { make_st mm = new make_st(); System.out.println("Ple

2021-04-15 01:19:03 931

原创 Kru 最小生成树

思路从所给的图中,开始挑边,找到最小的权值边加入到树中,如果加入后成环,也就是这条新加边的两个端点本来就联通,那么就不选,选下一条,时间复杂度mlog(m)模板#include<iostream>#include<algorithm>#define Maxn 300100using namespace std;struct node{ int a,b; int qz;};int f[Maxn];bool cmp(node a,node b){ retur

2020-11-21 20:37:26 317

原创 1030 完美数列 二分

题意给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行给出两个正整数 N 和 p,其中 N(≤10^5)是输入的正整数的个数,p(≤10 ^​9)是给定的参数。第二行给出 N 个正整数,每个数不超过 10 ^​9输出格式:在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。输入样例:10 82 3 20 4 5 1 6 7

2020-11-18 21:31:08 230

原创 莫队(sample

思想核心思想就是通过分块算法来减少时间复杂度,从O(n^2)优化到O(nsqrt(n) ),可以解决区间求不同问题思维过程从暴力扫到双指针,动态搜索总是会卡时间复杂度,所以我们为了能尽可能地用上之前的数据,我们选择离线计算后按顺序输出模板加了巨多优化(其中还有许多佛系优化)#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#define maxn 1

2020-11-17 22:05:13 95

原创 LCA 最近公共祖先 CodeForces Minimum spanning tree for each edge

LCA基础思想给定一个树/无向图,再给定若干个询问,询问内容是给出两点,要求给出这两点的最近公共祖先。这样子就像两个点各有一条路径回溯到根节点,求这两条路径第一次相交的点在哪里所以最基础的lca,我们就可以找到两条路径,然后找出那个LCA,具体操作就是在一棵树内,标出每个点的深度,然后先把低的那个点跳到高处,然后两个点重合就说明找到LCA,如果不同就一同往上跳,直到找到相同的爹。LCA二进制跳表刚刚那个时间复杂度是O(n^2),所以挺鸡肋的,我们就要用到伟大的二进制,我们知道对于任意一个整数n,它

2020-11-17 21:29:26 130

原创 exgcd 拓展欧几里得

拓展欧几里得首先我们要知道一个结论:裴蜀定理(或贝祖定理)存在整数x,y 使得ax+by=gcd(a,b) 成立推导建议拿着笔一起做推导,我们知道欧几里得算法,即辗转相除法,核心公式为gcd(a,b)=gcd(b,a%b),我们就推导出拓展欧几里得。ax1+by1=gcd(a,b)=gcd(b,a%b)=b*x2+(a%b)*y2这样我们就得到了状态转移方程?其中a%b可以写成a-((a/b)*b),我们就得到了最终的状态转移方程,同时因为采取了递归的写法,我们会由2状态推出1状态,

2020-11-13 00:34:20 203 1

原创 第八届蓝桥杯C/C++ B组决赛 发现环

标题:发现环小明的实验室有N台电脑,编号1~N。原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络。在树形网络上,任意两台电脑之间有唯一的路径相连。不过在最近一次维护网络时,管理员误操作使得某两台电脑之间增加了一条数据链接,于是网络中出现了环路。环路上的电脑由于两两之间不再是只有一条路径,使得这些电脑上的数据传输出现了BUG。为了恢复正常传输。小明需要找到所有在环路上的电脑,你能帮助他吗?输入第一行包含一个整数N。以下N行每行两个整数a和b,表示a和b之间有一条数据链接相连。对于3

2020-11-09 22:36:31 131

原创 小结线段树

例题——洛谷P3374题目描述如题,已知一个数列,你需要进行下面两种操作:将某一个数加上 x求出某区间每一个数的和输入格式第一行包含两个正整数 n,m分别表示该数列数字的个数和操作的总个数。第二行包含 n 个用空格分隔的整数,其中第 i 个数字表示数列第 i 项的初始值。接下来 m 行每行包含 3 个整数,表示一个操作,具体如下:1 x k 含义:将第 x 个数加上 k2 x y 含义:输出区间 [x,y]内每个数的和输出格式输出包含若干行整数,即为所有操作 2 的结果。输入输出样

2020-11-08 14:02:56 178

原创 第九届蓝桥杯C/C++ B组决赛 搭积木dp

题目描述小明对搭积木非常感兴趣。他的积木都是同样大小的正立方体。在搭积木时,小明选取 m 块积木作为地基,将他们在桌子上一字排开,中间不留空隙,并称其为第0层。随后,小明可以在上面摆放第1层,第2层,……,最多摆放至第n层。摆放积木必须遵循三条规则:规则1:每块积木必须紧挨着放置在某一块积木的正上方,与其下一层的积木对齐;规则2:同一层中的积木必须连续摆放,中间不能留有空隙;规则3:小明不喜欢的位置不能放置积木。其中,小明不喜欢的位置都被标在了图纸上。图纸共有n行,从下至上的每一行分别对应积木

2020-11-05 18:13:31 424

原创 第九届蓝桥决赛 C/C++ B组 激光样式dp

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

2020-11-04 21:31:23 138

原创 P2925 [USACO08DEC]Hay For Sale S

思路佐田,我在CSDN上学背包问题,有个博主的博客写的特别好啊传送门,我啪的一下就站起来了很快啊,然后上来就是一个01背包例题板子,我大意了啊没有优化,IDE全部防出去了昂,给我来了一发TLE,发生甚么事了?我想怎么回事?哦,原来是少了一个前缀和优化。我优化写了一发交上去了。啊,这时间,按照传统功夫的点到为止来讲,我已经可以下一题了啊,IDE也承认我的优化结果正确,但是我忽然偷袭!点开了题解,我大意了啊没有想到,如果dp【j】==c了之后应该可以直接跳出循环的啊,我劝,年轻人,耗子尾汁,以后做题前要好好反

2020-11-03 16:35:30 230

原创 状压DP TSP(状态压缩动态规划)

压缩状态把每种状态做离散化标记.比如一个灯位于(i,j),灯亮的话light[ i ][ j ]=1;不亮就是0. 这个东西选是1不选是0. 这个点走过就是1没走过就是0等等……所以我们把每种状态都可以哈希为一个十进制整数,这个整数根据每个点状态种类的数量不同可以对应转化为二进制、三进制、四进制等等来表示一个状态比如二进制:1001,转化为十进制为9,那么状态[ 9 ]就代表着选四号位,不选三号位,不选二号位,选一号位这一种状态再假设一个人只有三种状态,吃饭 0,睡觉 1,打东东 2,那么三进制:

2020-11-01 22:24:11 425

原创 LIS——最长上升子序列 dp+二分优化

朴素O(n^2)建立一个数组res[Maxn], res[ i ]用来记录以i位置为结尾的最长的子序列,那么我们要求res这个数组里的最大值(注意不是res[ n ] ),所以当我们在求res[ i ] 时,需要从0到i-1扫一遍,看看通过哪个点“松弛” (因为这个算法好像迪科斯彻最短路,所以借用这个名词来解释一下),这样代码如下#include<iostream>#include<algorithm>using namespace std;const int MAX=10

2020-11-01 14:01:16 153

原创 区间DP入门+优化

区间DP原理先对小区间进行操作得到局部最优解, 然后通过小区间的最优解来得到大区间的最优解。利用了最优子结构和无后继影响的特性。DP模板#include<iostream>#include<algorithm>using namespace std;typedef long long ll;ll dp[2000][2000];int main(){ init(); // 初始化DP for(int len=1;len<=n;len++) // 遍历子

2020-10-31 15:43:00 674 1

原创 树的遍历总结

一.树的遍历方式树的遍历方式按节点数据访问位置分为前序遍历,中序遍历和后序遍历。首先就是,访问左子树和右子树的顺序是一样的,总是 访问左子树->访问右子树,这样很明显,访问当前根节点数据的程序有三个位置可以放,分别是:访问根->访问左子树->访问右子树(前序遍历);访问左子树->访问根->访问右子树(中序遍历);访问左子树->访问右子树->访问根(后序遍历);0.树的定义struct node{ int num; node *l; node

2020-10-21 23:01:03 297

原创 蓝桥复习——KMP

KMP在s中寻找p(找到第一次出现的位置)void find_next(char *p){ int h=strlen(p); int k=-1; int j=0; next[j]=k; while(j<h) { if(k==-1||p[k]==p[j]) { j++; k++; next[j]=k; } else k=next[k]; } return ;}int kmp(char *s,char *p){ int hs=strle

2020-10-16 23:51:54 207

原创 蓝桥复习——并查集模板

并查集思想我朋友的朋友还是我的朋友记录每个点的父亲,也就是两个点有关系选一个当父亲。先把每个点的父亲设置为自己本身,然后再加入两点有关系时,找到两人的父亲,把两个人的父亲设为父子关系就完成了连通分支的合并。并查集函数int un(int root) //查找父亲{ int son=root; while(root!=pre[root]) root=pre[root]; while(son!=root) { int temp=pre[son]; pre[son]=root;

2020-10-16 22:21:43 163

原创 把矩阵化成行最简型(伪)

三种初等行变换因为最后显示出来矩阵行还是乱的(雾所以是伪但是俺觉得已经不影响使用了呢(笑输入:行数 列数矩阵#include<iostream>#include<algorithm>using namespace std;double mt[100][100];int n,m;void num_multiply_line(int a,double x){ for(int j=0;j<m;j++) mt[a][j]*=x; return ;}

2020-10-16 19:50:33 1136 1

原创 蓝桥杯算法整理第一节 深度优先搜索

DFSDFS原理:递归DFS思想:不撞南墙不回头DFS例题:走迷宫,全排列(等)DFS延伸:记录路径,剪枝模板void DFS(int x,int y){ if(满足所需要的条件) { 相应的操作;return;} else{ for(int i= ; ;) //如果是方向的话,会枚举方向 { 枚举加方向的新坐标; if(界限 :例如:不能出到地图外,

2020-10-11 22:23:55 479

原创 线段和最大值

题面给你一串数,从里面任意挑出一串连续排列的数(一个区间),求所有区间数的加和的最大值。思考首先是无脑暴力,直接套i,j,k三个循环,遍历所有可能性即可。但是这样很明显,O(n3)的时间复杂度会让一些较大的数据TLE。所以再思考……接着是前缀和做法,开一个sum数组记录当前位置以及前面所有数的加和,可以省掉for(int k=i;k<=j;k++)的循环,但是O(n2)还是不够满意。所以再思考……接着是想,符合条件的区间会满足怎么样的特性呢?首先是,满足条件的区间(和最大的那个),左右两端(

2020-09-10 18:42:25 961

原创 线性代数矩阵计算

无脑bfs搞全排列#include<iostream>using namespace std;int n;int box[20];int vis[20];int s[20][20];int res;int check(){ int cnt=0; for(int i=1;i<n;i++) for(int j=0;j<i;j++) if(box[i]<box[j]) cnt++; return cnt;}void bfs(int ste

2020-09-09 20:29:10 249

原创 蓝桥杯 试题 历届试题 买不到的数目

可怕的数论题这个数的表达式是z=ax+by其中ab由题目给出这个最大的不能得到的数是a*b-a-b证明就不写了,反证法看起来挺好理解的#include<iostream>using namespace std;int main(){ int a,b; cin>>a>>b; cout<<a*b-a-b<<endl;}...

2020-09-01 21:43:04 129 1

原创 线段树听课学习笔记

一.线段树的引入做题的时候遇到了BMQ问题,就是求给定区间中的最大值最小值问题,暴力搜索只限于数据范围较小,控制在1000-10000左右的时候。而线段树解决了O(nlogn)的时间复杂度,其中建树为O(n).二.线段树的性质1.平衡二叉树,最大深度为logn2.树中每一个节点代表一个区间(叶子节点是一个点)3.每个节点完全包含他的所有子孙节点4.任意两个节点要么是完全包含,要么互不相交5.在进行区间操作和统计时把区间等价转换为若干个子区间的相同操作三.区间和例子#include<i

2020-08-30 20:32:42 97

原创 怪盗——1412(排列组合

题目描述一个长度为n+m+k包含n个数字1,m个数字2和k个数字4的数组,最多可能有多少个子序列1412?如果一个序列是数组的子序列,当且仅当这个序列可以由数组删去任意个元素,再将数组中的剩余元素按顺序排列而成。输入描述:第一行一个整数t,表示测试用例的组数。接下来{t}t行每行三个整数n,m,k表示一组测试用例。输出描述:对于每组测试用例输出一行一个整数表示答案。示例1输入36 7 81 2 26 0 3输出50400备注:{1<=t<=200000}1&

2020-05-23 02:05:47 422

原创 Dis2(distance2)

题目描述给出一颗n个点n−1条边的树,点的编号为{1,2,…,n-1,n}1,2,…,n−1,n,对于每个点i(1<=i<=n),输出与点{i}i距离为{2}2的点的个数。两个点的距离定义为两个点最短路径上的边的条数。输入描述:第一行一个正整数{n}n。接下}n−1行每行两个正整数u,v表示点u,v之间有一条边。输出描述:输出共n行,第i行输出一个整数表示与点i距离为2的点的个数。样例输入41 22 33 4输出1111题目分析其实这道题也不是很难,主要

2020-05-23 01:47:03 655

原创 矩阵相乘·(离散数学我再也不怕啦

直接上代码#include<iostream>using namespace std;int n;class node{ public: int data[20][20]; int size; node() //无参构造 { size=0; } node(const node & a) //带参构造 { this->size=a.size; int limit=a.size; for(int i=0;i<limit;i++)

2020-04-11 21:51:43 2863

原创 7-1 汉诺(Hanoi)塔问题 (20分)

古代某寺庙中有一个梵塔,塔内有3个座A、B和C,座A上放着64个大小不等的盘,其中大盘在下,小盘在上。有一个和尚想把这64 个盘从座A搬到座B,但一次只能搬一个盘,搬动的盘只允许放在其他两个座上,且大盘不能压在小盘上。现要求用程序模拟该过程,输入一个正整数n,代表盘子的个数,编写函数void hanoi(int n,char a,char b,char c)其中,n为盘子个数,从a座到b座,c座作为中间过渡,该函数的功能是输出搬盘子的路径。输入格式:输入在一行中给出1个正整数n。输出格式:输出搬

2020-02-26 22:19:10 2831

原创 10进制转换2进制

本题要求实现一个函数,将正整数n转换为二进制后输出函数接口定义:void dectobin( int n );函数dectobin应在一行中打印出二进制的n。建议用递归实现。裁判测试程序样例:#include <stdio.h>void dectobin( int n );int main(){ int n; scanf("%d", &n); dectobin(n); return 0;}/* 你的代码将被嵌在这里 */输入样例:

2020-02-26 22:17:26 382

原创 6-3 递归实现指数函数 (15分)

本题要求实现一个计算pow(x,n) (n≥1)的函数。函数接口定义:double calc_pow( double x, int n );函数calc_pow应返回x的n次幂的值。建议用递归实现。题目保证结果在双精度范围内。裁判测试程序样例:#include <stdio.h>double calc_pow( double x, int n );int main(){ double x; int n; scanf("%lf %d", &x, &a

2020-02-26 22:09:18 2897

原创 HDU - 1541圆桌问题

题目描述圆桌上围坐着2n个人。其中n个人是好人,另外n个人是坏人。如果从第一个人开始数数,数到第m个人,则立即处死该人;然后从被处死的人之后开始数数,再将数到的第m个人处死……依此方法不断处死围坐在圆桌上的人。试问预先应如何安排这些好人与坏人的座位,能使得在处死n个人之后,圆桌上围坐的剩余的n个人全是好人。Input多组数据,每组数据输入:好人和坏人的人数n(<=32767)、步长m(<=32767);Output对于每一组数据,输出2n个大写字母,‘G’表示好人,‘B’表示坏人,50

2020-01-22 22:15:02 171

原创 HDU-1412 {A} + {B}

题目描述给你两个集合,要求{A} + {B}.注:同一个集合中不会有两个相同的元素.Input(输入每组输入数据分为三行,第一行有两个数字n,m(0<n,m<=10000),分别表示集合A和集合B的元素个数.后两行分别表示集合A和集合B.每个元素为不超出int范围的整数,每个元素之间有一个空格隔开.Output(输出针对每组数据输出一行数据,表示合并后的集合,要求从小到大输出,每个元素之间有一个空格隔开.Sample Input(样例输入1 212 31 211 2S

2020-01-22 22:09:27 259

原创 高精度乘法(High precision multiplication

Background IntroductionBulls are so much better at math than the cows. They can multiply huge integers together and get perfectly precise answers … or so they say. Farmer John wonders if their answers are correct. Help him check the bulls’ answers. Read i

2020-01-14 16:53:27 248

原创 PAT 乙级 1006 换个格式输出整数 (15分)

题目描述让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12…n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。输入格式每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。输出格式每个测试用例的输出占一行,用规定的格式...

2019-12-19 19:54:44 108

空空如也

空空如也

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

TA关注的人

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