自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ogv术语

垂直产品区别于综合产品,指服务某一特定领域的产品。 比如垂直类社交应用中,豆瓣属于兴趣社交应用。 微信朋友圈、QQ空间、微博都属于综合类社交应用as / bs / cs是什么:CS:Client/Server,客户机/服务器BS:Brower/Server,浏览器和服务器AS:Application/ Server ,A/S体系结构通过设置应用服务器(组),将关键性的业务软件集中安装发布,客户端可完全在服务器上执行所需的应用KFC 和 Redis 是什么:KFC: KV存储查

2021-09-01 11:52:40 1545

原创 airflow用法- schedule_date 和 宏替换

公司airflow 版本似乎是1.9之前, 在python operator 中不支对op_args&op_kwargs 进行宏替换(1.10版本可以) ;想要实现宏替换,需要指定参数provide_context = True (默认为False)再传入templates_dict ,airflow会对templates_dict 中的值进行替换。在函数中通过kwags[‘templates_dict’]获取值同时 templates_dict 支持对sq文件进行宏替换(指定参数),返回替换

2021-09-01 11:49:08 463

原创 hive 笔记

Hive notebookjoin : 连接内连接 join / inner join :连接A,B交集左连接 left join: 以A 为基础,连接B,如果B没有A 对应的值,该行依然存在,但B连接部分为NULL左连接 right join: 以B 为基础,连接A,如果A没有B 对应的值,该行依然存在,但A连接部分为NULLJoin on 语法:A join B on A.id=B.id 定义连接的字段为idPartition 分区: 表示hive表 各块存储位置的 特殊字段

2021-09-01 11:46:19 204

原创 hive & sql 笔记

第一章 名词名词笔记扩展表名在数据库中 唯一模式schema作用 描述- 可描述 表 or 数据库- 描述 数据在表中如何存储 / 数据如何分解/ 信息如何命名 等等行row列column主键能够唯一标识表中每一行数据的(1个或多个)字段主键列不允许空值; 主键列值不允许更新和修改第二章 Selectsql语句以分号 “ ; ” 分割 ;不区分大小写; 忽略空格注释方法: 行注释:-- ;段注释:/* */Disti

2021-09-01 11:45:49 733

原创 c++面试题 指针和引用 && 虚函数纯虚函数

《c++ primer》P47 1.指针本身就是一个对象,询语对指针赋值和拷贝,在指针的生命周期内它可以先后指向不同的对象 2.指针无需再定义时赋初值,如果没有初始化,是一个不确定的值

2021-07-02 12:19:51 300

原创 hadoop学习MapReduce笔记

传统并行框架,底层使用统一共享存储(SAN),扩展比较难,故障容易引起整个集群不工作。刀片服务器,贵,只能横向增加服务器数量,不能扩大。编程考虑互斥信号量等类似多线程编程。适用与实时计算等计算密集型。MapReduce, 非共享式架构,节点有自己的内存。可以自由增加计算节点。自动进行资源分配部署。适合数据密集型的应用。MapReduce理念:计算向数据靠拢,而不是数据向计算靠拢数据向计算:选择一个计算节点,把所需数据从节点上取过来计算向数据:把计算发到数据所在的节点map 函数map输入一

2021-06-02 13:33:17 121

原创 attention机制的理解

我对 attention 机制的理解attention 在很多网络模型中都用到,并且结合很广泛。由于attention在文章中出现频率很高,所以我试图了解attention机制。我只是说说我对attention的理解,attention使用意义,可能片面,如果有补充和纠正欢迎指出。前置知识储备在这里首先默认,你对attention有初步的了解:知道Q K V 矩阵, Attention(Q,K,V)=softmax(QKTdk)VAttention(Q,K,V)=softmax(\frac{QK^T}

2021-06-01 20:18:23 285

原创 c++pointer踩坑记录 (std::move, shared_ptr)

要实现的需求:拿到一个指向数据的void * 指针;用这个指针替换旧对象数据。要求: 不额外申请内存我在这过程中搜过的问题 && 看的知识点: how to use enum in c++ use std::move to pointer std::vector指针的下标“[]”的使用 std::unique shared_ptr 构造函数enum 使用现在我有一个 enum 类型的结构体:enum Flags { ON_DEVICE = 0x0

2021-01-27 11:26:23 1258

原创 决策树的三种实现(绘图):id3, c4.5 , cart

坑① 构建子树被ppt坑了一下,ppt里写构建子树的时候要选数据集最大的点来构建子树。那么就意味着每一层中只有一个节点能建子树(该点的数据集最大)。但实际上这句话是屁话,只要节点没有分完,就要往下建树。遍历子节点建树就ok,管它什么数据集大小。坑② python 画树中文乱码这个什么pygraphviz 库,首先中文不支持,你想要显示中文,得fontname=“SimHei”不然乱码,服气重名节点我想要画的叶子节点的名字是重复的,比如 好瓜出现了两次。蛋疼的是,Pygraph

2020-11-04 10:43:03 865

原创 NLP笔记

本来是想要了解attention 机制的,论文看不下去;在B 站发现这个宝藏视频,讲解nlp的很清晰。基础要从最底下开始打,不能一口气吃成胖子。https://www.bilibili.com/video/BV17A411e7qL?p=2用逻辑回归来进行0-1预测sequential 模型的意思是把神经网络的层按顺序搭起来vocabulary 是字典集的维度,embedding_v:dim 是词向量维度,word_num表示每个sequence的长度其中v:这一步设置完,我们可以

2020-10-23 21:12:42 132

原创 机器学习与神经网络概念学习

神经网络是进行机器学习的方式之一,也是目前使用最广泛的方式。机器学习的目的是根据已有的数据来预测未知的结果。通过已有的数据建立模型,在模型下进行预测,模型的可靠性决定预测结果的准确率。如何建立更优的模型,是机器学习主要关注的问题。神经网络模拟人脑处理数据的过程,将数据作为输入,每一层对数据的处理类比为神经元之间信息的加工传递。当使用机器学习来解决具体任务时,机器并不了解原始数据的哪几项特征对于预测有效。一般需要对数据预处理,将干扰信息除去;提取有效特征;对特征进行再加工,降维或升维。对于不同特征

2020-06-05 16:44:58 873

原创 C# 实现包装tcp/ip 为websocket 服务器传输图片

C# 实现包装tcp/ip 为websocket 服务器传输图片介绍要求:web上实现客户端与服务器之间传输图片。服务器是用C#写的。网上找了一下,可以用websocketSharp实现,但是引入第三方库需要架构组审批之类的,总之不太好。我想想试试用tcp/ip 包装成websocket 进行传输图片,结果还是踩了不少坑的。包装websocket 是建立在tcp/ip上的,那么,...

2020-04-15 17:11:02 1287

原创 最小生成树模板

struct edge{ int u,v,cost;}es[maxn_e];bool cmp(const edge &a,const edge &b){ return a.cost<b.cost;}int par[maxn_n],rankk[maxn_n];void init_union_find(int n){ for(int i=0;...

2018-07-26 13:12:16 114

转载 数独问题&模板

/*DLX解决9*9的数独问题,转化为729*324的精确覆盖问题行:一共9 * 9 * 9 == 729行。一共9 * 9小格,每一格有9种可能性(1 - 9),每一种可能都对应着一行。列:一共(9 + 9 + 9) * 9 + 81 == 324 种前面三个9分别代表着9行9列和9小块,乘以9的意思是9种可能(1 - 9),因为每种可能只可以选择一个。81代表着81个...

2018-07-16 19:05:08 461

原创 最大流模板poj3281

#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <cmath>#include <vector>using namespace std;const int INF=0x3f3f3f3f;co...

2018-07-13 14:06:47 122

原创 二分模板

//left-right组成的空间内是不符合要求的范围int binary(){ int left=1,right=pos[n-1]-pos[0]; int mid; while(right>left){ mid=(right+left)/2; if(judge(mid)){ left=mid+1; ...

2018-07-07 11:12:01 161

原创 卡特兰数

卡特兰数排列组合不重复的个数 这次碰到是括号合法匹配的问题An=C(2n,n)/(n+1);#define LL long longLL factorial(LL number){ if(number<=1) return 1; else return number*factorial(number-1);}LL...

2018-06-13 15:58:23 129

原创 巧算星期几(蔡勒公式)

蔡勒公式 W=[C/4]-2C+y+[y/4]+[26(m+1)/10]+d-1(其中[ ]为取整符号)其中,W是所求日期的星期数.如果求得的数大于7,可以减去7的倍数,直到余数小于7为止.c是公元年份的前两位数字,y是已知公元年份的后两位数字;m是月数,d是日数.方括[ ]表示只截取该数的整数部分。还有一个特别要注意的地方:所求的月份如果是1月或2月,则应视为前一年的13月...

2018-06-03 19:47:24 4450

原创 博弈(尼姆,威佐夫、巴什)

巴什博弈 一堆n个物品,两个人轮流从这堆物品中取物, 规定每次至少取一个,最多取m个。最后取光者得胜。先手必胜为1有两种情况:n<=m 先手一次取完 必胜1n>m 先手一次取不完 剩余 <= m 对方一次取完 先手输0剩余 > m 重复状态 尽可能避免 剩余 <= m让自己输的情况。 那么: n=0时,取的人必输,n=...

2018-05-20 11:21:19 160

原创 计算几何之凸包

凸包:每个角<180°的多边形问题: 给定n个点的坐标,求能覆盖n个点的最小多边形Graham-scan 算法:极角排序 初始: 1. 找到一个起始点O, 取y坐标最小的点,即图最下方的点 2. 以O为准值,极角排序 3. 我们可以知道O一定在凸包上,p1也一定在凸包上(极角最小的点)。把这两个点入栈。开始: 4. 找到当前判断点,此时为P...

2018-04-27 15:29:19 135

原创 徘徊在WA和tel的模拟退火

模拟退火模拟降温的过程:温度越高时温度下降越多,温度越低(稳定)时,温度下降越少首先由爬山算法开始 爬山算法:即完完全全的贪心算法,只找到眼前的山峰最高值。 但从c点开始时,我们发现找到的A点不是全局最优解,这也是贪心的缺点。模拟退火是在爬山算法上做的改进:其核心是:即使找到的不是最优解,也有概率选择它 这样就能跳出贪心的局部最优,搜索到全局最优 概率符合退火...

2018-04-23 20:27:52 165

原创 最短哈密顿回路(旅行商问题)

哈密顿回路:不重复地经过每个点,并最终能回到起始点的回路 有别于欧拉回路:不重复经过每条边的回路 哈密顿回路是点遍历 旅行商问题:求一条经过图中所有点且边权和最小的回路。 以下解法:模拟退火状压dpdfs...

2018-04-20 13:49:13 10387

原创 中国剩余定理(互质与不互质)

其实,不管互质还是不互质都是求解线性同余式: 中国剩余定理(互质)是求解线性同余式的一种特殊形式; 两种情况都是把多个方程组转成一个方程求解。中国剩余定理模板(互质):void exgcd(ll a,ll b,ll &d,ll &x,ll &y){ if(!b){d=a,x=1,y=0;} else {exgcd(b,a%b,d,y,x);y...

2018-04-19 20:25:01 611

原创 回文子串

//manacher算法/*获得字符串最长回文串(长度,位置)*/#define Maxn 1000struct Manacher{string str;//输入的字符串int RL[Maxn];//回文半径数组(表示以第i个字符为对称轴的最长回文串的回文半径)int MaxRight;//当前访问到的回文串中,能到达的最右的位置int pos;//MR所对应的对称轴的位置int ...

2018-04-14 16:28:20 100

原创 线段树模板

struct node{ int l,r; ll sum,lazy;}tree[maxn * 4]; // 开四倍大小void push_up(int root){ tree[root].sum = tree[root << 1].sum + tree[(root << 1) | 1].sum;} // 儿子的值相加为父亲的值void pus...

2018-04-14 16:11:43 63

转载 大数模板

#include<iostream> #include<string> #include<iomanip> #include<algorithm> using namespace std; #define MAXN 9999#define MAXSIZE 10#define DLEN 4class BigNum{ privat...

2018-04-14 15:45:32 91

原创 并查集

并查集用来管理 相互关联的元素的分组情况,但只能进行合并,不能分割:查询a,b是否在同一组合并a,b所在的组int father[maxn];//记录父亲节点int rank[maxn];//数的高度 初始为0void init(){ for(int i=0;i<n;i++){ father[i]=i rank[i]=0; }...

2018-04-14 14:11:51 70

原创 割点与桥与缩点(tarjan)

割点:若删除该点,图不连通,则该点为割点 桥:若删除该边,图不连通,则该边为桥如何求割点: Tarjan算法,一次dfs遍历:对每个点,记录dfs序为dfn[],low值为low[](low初始值与dfn相同)回溯时,如果回溯点的low值小于当前点low值,更新当前点low值对于根节点,需要特判,其子节点>=2为割点我们可以发现,low值记录的是:该点所在的强连通...

2018-04-12 22:11:31 967

原创 欧几里得算法及其扩展

欧几里得算法 求最大公约数GCD:辗转相除引理: 设数a,b(a>b),可得: gcd(a,b)=gcd(b,a%b)证明:设 c=gcd(a,b) 可得 a=xc, b=yc (x,y互质) 又a%b=a-(a/b)*b 其中设q=a/b,上式变为 :a%b=a-qb=xc-q*(yc) 化简为:a%b= (x-qy) c 只需证:y与(x-qy)互质...

2018-04-11 14:15:08 133

原创 区间最值查询(RMQ)

ST算法预处理第i位起连续2^k个数的最大值,快速查询。 说明:定义数组dp[i][j]表示 从第i位起连续2^j个数 的最大值。 (区间内有2^j个数) 例子: 2 5 9 6 3 1 dp[1][2] 第1位起连续2^2(4)个: {2,3,9,6}预处理:dp[i][0]有一个,等于它本身。 从给定的排列我们可知全部的dp[i][0]; 从全部的dp[i][...

2018-03-22 20:33:41 588 1

原创 计算几何之判断线段相交

两条线段可以看作是两个向量; 一条线段跨立另一条线段的条件是:一条线段的端点分别到另一条线段两个端点构成的向量在该线段两侧;(可能不相交) 而两条线段互相跨立,即相交,就可判断。模板分享#include <iostream>#include <stdio.h>#include <math.h>#include <algorithm&g...

2018-03-19 11:15:40 206

原创 A* 算法解决最短路径问题

常规的寻找最短路径的算法有bfs\迪杰斯特拉算法; 但是搜索范围过大,比较费时; 也可以用最短的贪心算法来计算,但是在两点之间有障碍物的情况下,贪心求得的路径并不是最短路径(会走到障碍物再被弹回)。 所有我们 通过把 贪心+ bfs =A* 结合进行求最短路。思想:我们需要两个数组 open[] 表示需要被检验的点 close[] 表示已经被检验的点 当前判断的点记为 cu...

2018-03-17 18:02:15 5181

原创 判断素数(Miller-Rabin、筛选)与 求素数因子(Pollard rho、试除)

Miller-Rabin算法:用来确定一个指定的数N是否是素数。费马小定理:如果p是素数,那么p满足:(对任意a>=1)如果我们指定一个a,如果n不满足费马定理,那么n不是素数(即合数)。(逆否) 但,在基数a下,如果n满足费马定理,n有可能是素数。 用一个样本a判断,过程会出错,但机会非常少:(不证明) 在基数2下,10000内的n值,有22个值判断错误。...

2018-03-17 11:32:16 419

原创 概率dp

为了求解问题的期望值,我们需要用到概率公式求解; 但当情况复杂时,无法直接计算得到; 所有引入dp的概念来计算概率: 即通过前一步概率得到下一步概率,把计算结果的总概率分解成计算部分的概率。用 dp 来dfs时,如果是从初始递推到末状态,会经过许多无效状态; 我们可以从末状态 反推 到初始状态。 dp[i][j]的定义是从[i][j]到末状态的期望。dp的反推公式是: d...

2018-03-17 11:31:49 131

原创 倍增法与LCA

倍增法和二分搜索相似,搜索的范围为1/1 1/2 1/4 1/8 1/16 1/32. 倍增法的每一步范围为 1 2 4 8 16 32 。 用数学可以证明:任意一个数可以由2的指数和构成(即2进制表示) 所以用倍增发可以表示每一步:如果跳7(111)步,用倍增法跳三次。实现求出每一点的倍增情况:对点v而言,记录它 向上走2^k步所到的节点(k>=1),parent[...

2018-03-16 12:53:13 242

原创 迷之最长公共子序列(LCS)

最长公共子序列:两个序列按顺序匹配相同的元素,所构成的新序列。(元素间可以不连续) 举例: a----b----e----d----c----f----g 丨 丨 丨 丨ca-------------------c----fh---ge最长公共子序列为 :acfg解决最长公共子序列:暴力搜索:假设长度为N的序列,其子序...

2018-03-12 11:03:27 101

原创 我对数位dp的理解

dp即动态规划,一个很神奇的词,与其说是算法,不如认为是一种概念。 (有的时候你做完题,甚至都不知道自己用的是dp…)我觉得吧,dp,就是把全局的最优解,拆分成部分最优解。 (也可能不是最优解,但与全局最优解有关) 一种牵一发而动全身的感觉。数位dp,就是和数字排列有关,解决超长数字范围问题(比如范围到1e200000)。思路1、范围有多少位,就建多少个数组,每个数组...

2018-03-10 22:20:21 400

原创 三分搜索

今天学习了三分搜索。 三分搜索的思路为:把一段范围分成三段(1=1/3+1/3+1/3) 左范围l,右范围r; 左中点 m = l+(r-l)/3; 右中点 mr = r - (r - l ) /3; 比较 m , mr (根据具体题目要求),舍掉范围外的另一个,达到缩小范围的效果。和之前的二分搜索相比,两者还是有很多区别的: 1、二分搜索用于一维上范围内找点,点与点平行。平行的意...

2018-03-10 21:52:14 147

原创 初学双端队列(deque)

双端队列(deque)是C++标准模板库(STL)中的容器。支持随机访问和存取,支持下标访问。与vector类似,但有不同: vector是单向开口的容器,只支持在末尾添加操作; deque是双向开口的容器,可以在首尾操作。deque的迭代器可以+X 直接加到要求的位置(比起其他容器迭代器只能++ –)但是遇到一个问题就是: 有的时候你pop、erase了首项,但是你的迭代器并不会自动地指向下

2018-03-09 11:56:22 172

原创 矩阵快速幂

矩阵幂可以用来解决斐波那契问题,图的路径条数问题。在计算矩阵幂的过程中,如果用朴素的列与行枚举求和:例如——复杂度是O(N)。所以引进了矩阵快速幂来计算。首先来看快速幂——快速幂就是把指数再化成  底数加指数  的形式,例如:如何拆分呢?快速幂模板:ll quick(ll a,ll b ,ll c){    ll ans=1;    while(b){        if(b&1)...

2018-01-30 13:08:10 217

空空如也

空空如也

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

TA关注的人

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