- 博客(15)
- 问答 (1)
- 收藏
- 关注
原创 朴素贝叶斯 Naive Bayes
Naive Bayes 特点 朴素贝叶斯是典型的生成学习方法朴素贝叶斯的基本假设是条件独立性(强假设)若条件之间存在概率依存关系,模型变为贝叶斯网络基于上一条的假设,朴素贝叶斯方法高效,但分类性能受损将输入的 x 分类到后验概率最大的类 y 原理对于给定的输入 x通过学习到的模型计算后验概率分布 P(Y = ck | X = x)将后验概率最大的类作为x类的输出 朴素贝叶斯分类器 - 数学推导 先验概率分布 P(Y = ck) k = 1, 2, 3 … K
2021-07-12 22:52:41 278
原创 黑红树 RedBlackTree
RedBlackTree APIint Size() 返回大小int Size(Key low, Key high) 返回 low 到 high 间的元素个数bool isEmpty() 是否为空Key Min() 返回最小元素Key Max() 返回最大元素int height() 返回树的高度Value get(Key key) 返回键对应的值bool contains(Key key) 是否含有键keyvoid put(Key key, Value val) 插入键key和对应的
2021-07-12 22:15:31 235
原创 感知机(原始形式 +对偶形式)
感知机 perceptron 感知机是一种线性模型是神经网络,支持向量机等的基础 1.感知机模型 f(x) = sign(wx + b) w是权重向量weight,b是偏置向量bias sign(x) = 1 (x>=0) sign(x) = -1 (x < 0) wx + b 对应特征空间中的一个超平面S w 是超平面的法向量,b 是截距 2.学习策略 只能用于线性可分数据 损失函数 - 误分类点到超平面的距离之和 算距离时,选择几何距离,不能用函数距离
2021-07-05 19:08:20 940
原创 渗透实验 - 并查集
#include <iostream>#include <cstring>#include <ctime>#include <cstdlib>using namespace std;const int N = 1000;class unionFind{public: unionFind(int size); ~unionFind(); void union_node(int p, int q); int fin
2021-07-05 08:22:04 177
原创 Dijkstra最短路算法(朴素版 + 堆优化版)
Dijkstra算法dijksta算法用于求单源最短路适用条件: 图的所有边权为正数可以维护: 最短路条数 最短路中点权和的最值 ······例题https://blog.csdn.net/sjystone/article/details/1154737391.朴素版dijkstra算法朴素版dijkstra用邻接矩阵矩阵存图,一般用于稠密图设有n个点步骤: 进行n次循环,每次循环可以确定一个点的最短路 每次循环找出当前没有确定最短路(没有标记)的点中,距离最近的点,并将其标记
2021-04-07 13:15:27 232
原创 平衡树Treap
平衡树Treap由名字Treap可知,平衡树由tree和heap,即二叉搜索树and堆共同维护即平衡树的每个节点都要储存key和valkey满足二叉搜索树的性质,val满足堆的性质============================预备知识1.二叉搜索树BST满足以下两个条件的二叉树为BST1.当前节点的左子树中的任何一个点的key都严格小于当前点的key2.当前节点的右子树中的任何一个点的key都严格大于当前点的keyBST的中序遍历:按照 左子树 -> 根 -> 右
2021-04-05 16:16:02 220
原创 归并排序(自顶向下 +自底向上 + 优化)
归并排序快速排序是基于分治的思想,分治思想分为以下三步 1.将区间分解成子区间 2.递归处理子区间 3.合并子区间归并排序 1.确定分界点,即数组中点 2.以数组中点分成左右两边,分别递归排序左边和右边 3.归并,即将两个有序的数列合并成一个有序的序列将有序数列a和b(从小到大)合并成一个有序数列的实现方法 1.新开一个数组c 2.设定两个指针i和j,分别指向a和b的开头 3.将两个指针中更小的那个数加入c中 4.更小的那个指针往后移一位,继续比较 5.最后再把数组c的值放回原数
2021-04-04 21:19:23 1129 1
原创 快速排序 (三向切分优化 + 引入插入排序优化 + 找第k大值)
快速排序快速排序是基于分治的思想,分治思想分为以下三步 1.将区间分解成子区间 2.递归处理子区间 3.合并子区间快速排序步骤: 1.确定分界点x,x一般选择区间的中点对应的值,也可以取其他点 2.对分界点左右区间进行处理,使得所有小于等于x的数在左半边,大于x的数在右半边 3.递归处理左右区间,若左右区间排好序,整个区间就排好序了对某区间进行处理时,用两个指针 i 和 j 指向区间头和尾,相向移动 若遇到 i 指的值大于等于x,i 就停下来 若遇到 j 指的值小于等于x,j 就停下来
2021-04-04 17:01:38 303
原创 动态规划-01背包问题详解 c++
01背包问题有 N件物品和一个容量为 V的背包,每件物品有各自的价值且只能被选择一次,要求在有限的背包容量下,装入的物品总价值最大动态规划入门题目,运用闫氏dp分析法v[i]表示每个物品的体积,w[i]表示每个物品的价值f[i][j]表示从前i个物品中选,总体积不大于j的选法的集合对于第i个物品若不选他,则相当于从前i-1个物品中选,总体积不大于j的选法 -> f[i-1][j]若选他,先将第i个物品拿出来,且令j减去第i个物品的体积v[i]-> 则相当于在前i-1个物品选,总体
2021-04-03 14:32:47 1801
原创 并查集
并查集写在开头:配合例题食用效果极佳并查集是通过数组p和find函数,实现集合之间的合并,元素查询的数据结构两个操作: 1.合并两个集合 2.查找某个元素的祖宗节点两个优化: 1.路径压缩 -> 时间复杂度降到o(logn) 2.按秩合并 -> 时间复杂度降到o(logn)若两者一起使用 -> 线性两个维护: 1.记录每个集合的大小(绑定到跟节点) 2.记录每个点到跟节点的距离(绑定到每个元素) 由此可延伸出维护点之间的距离(例0)和关系(例1)p[x]表示
2021-04-02 23:16:16 281 2
原创 线段树
线段树储存方式struct node{ int l, r; //当前节点的区间范围 int v; //其他需要储存的信息} tr[N]; 需要储存的信息,需要看目前的信息,父节点可否由子节点信息直接得到,若不能需要增加新的储存信息(具体见例题2,3) u点的左儿子 2u u << 1 即 tr[u << 1] u点的右儿子 2u+1 u << 1 | 1 即 tr[u << 1 | 1]五大基本操作 1.pu
2021-04-02 15:46:30 691 2
原创 树状数组
树状数组:1.单点修改,区间求和 1.快速求前缀和 o(logn) 2.修改某一个数 o(logn)2.拓展-区间加,求单点和(见例题简单的整数问题1) -> 结合差分3.拓展-区间加,区间求和(见例题简单的整数问题2)lowbit函数用于取x二进制最低位的1与后面的0组成的数字原理:二进制的负数是正数取反加一 int lowbit(int x) { return t & (-t); }假设x = 2ik + 2ik-1 +…+ 2i1
2021-04-02 14:10:36 260
原创 C++ 纵横字谜的答案(详解)
输入一个r行c列(1≤r,c≤10)的网格,黑格用“*”表示,每个白格都填有一个字母。如 果一个白格的左边相邻位置或者上边相邻位置没有白格(可能是黑格,也可能出了网格边 界),则称这个白格是一个起始格。首先把所有起始格按照从上到下、从左到右的顺序编号为1, 2, 3,…接下来要找出所有横向单词(Across)。这些单词必须从一个起始格开始,向右延伸到 一个黑格的左边或者整个网格的最右列。最后找出所有竖向单词(Down)。这些单词必须 从一个起始格开始,向下延伸到一个黑格的上边或者整个网格的最下行。输入
2020-12-15 22:40:59 1032
原创 C++环状序列
长度为n的环状串有n种表示法,分别为从某个位置开始顺时针得到。如ABCD BCDA CDAB DABC 在这些表示法中,字典序最小的称为"最小表示"。输入一个长度为n(n≤100)的环状DNA串(只包含A、C、G、T这4种字符)的一种表 示法,你的任务是输出该环状串的最小表示。例如,CTCC的最小表示是 CCCT,CGAGTCAGCT的最小表示为AGCTCGAGTC。(字典序,就是字符串在字典中的顺序。一般地, 对于两个字符串,从第一个字符开始比较,当某一个位置的字符不同时,该位置字符较小的 串,字典序
2020-12-15 18:46:50 484
原创 C++ 猜数字游戏的提示(详解)
实现一个经典"猜数字"游戏。给定答案序列和用户猜的序列,统计有多少数字位置正确(A),有多少数字在两个序列都出现过但位置不对(B)。 输入包含多组数据。每组输入第一行为序列长度n,第二行是答案序列,接下来是若干猜测序列。猜测序列全0时该组数据结束。n=0时输入结束。样例输入41 3 5 51 1 2 34 3 3 56 5 5 16 1 3 51 3 5 50 0 0 0101 2 2 2 4 5 6 6 6 91 2 3 4 5 6 7 8 9 11 1 2 2 3 3 4 4
2020-12-15 07:59:33 1148
空空如也
算法竞赛(刘汝佳) 习题4-2 正方形 UVa201
2020-12-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人