自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(230)
  • 资源 (1)
  • 收藏
  • 关注

原创 换个地方找到我:我的公众号【云影原生】

今天偶然上到CSDN发现还有人给我的文章点赞,给我私信问问题,还有很多人希望找我一起review文章相互进步,真的错过了很多学习的机会。我在21年新开通了个公众号,如果有问题可以去公众号找我或者加我的微信,看到问题或者相互review文章我会认真看。公众号每周至少发一篇文章,目前包括并不限于:1、 计算机网络2、 工程化3、 linux4、 kubernetes/docker5、 读书心得6、 困难问题排查...

2021-02-20 09:46:08 253

原创 为什么Go服务容器化之后延迟变高

为什么Go服务容器化之后延迟变高在今年的gopherchina上发现有两三个topic都在说Go服务容器化的P(如果你不知道P是什么,没有关系,马上就会解释)数量的问题,现象是被容器限制了4C的服务跑在96C的机器上,相比于物理机部署的延时高了很多。原因是因为Go启动的时候读的宿主机的CPU核心数,启动了96个P,96个P都在找G去执行但是只有4C的处理时间,导致大量CPU耗费在找G和上下文切换。解决方案就是引入uber的automaxprocs这个库就可以了。我回公司之后通过trace发现自己的2C服

2021-09-15 12:52:47 326

原创 致读者

这个博客如果不登陆的话,很难看到评论或者私信的信息,已经切换了【新博客地址】。如果有问题也可以给我发邮件,[email protected]。全天在线。

2018-02-09 14:07:07 593

原创 github restful api v3学习梳理

github做的比较好的地方文档写的好,对资源的从属分类做的特别好,让人一眼就知道大致在做什么;对各种接口的变迁有对象的描述,也有对应的解决方案;add-team-member 和 add-or-update-team-membership 都是在teams中,增加一个成员,但是membership就像是对member的一个升级版本,前者当在teams中邀请成员的时候,如果该用户不存在在o

2017-11-15 15:08:02 11322 1

原创 MVC、MVVM和单向数据流的对比

今天听了部门的高T分享的react和其他框架思想的对比,真的是受益匪浅,所以特地把高T分享的总结一下。前端开发本质上是一种展现层开发,我思考了一下这句话,这句话用人话说就是前端开发本身就是写界面的。但是别人能把写界面的能总结成下面一个循环,我发现这真的是能力了。如下图,有略微的改动: ()下面就开始进入正题了。基于MVC的前端开发简单的MVC先看下图: 用户操作界面当用户操作的视图的时候会派发一

2017-07-24 19:30:57 6830 1

原创 git常用的一些小技巧

git的一些操作删除远程文件夹但是不删除本地文件夹git rm -r --cached node_modules/git commit git push

2017-07-19 15:43:30 462

原创 windows下安装mysql遇到的一些坑

安装了两个小时的mysql到了现在才成功,写一篇文章为了以后出现类似的错误能随时翻到。1. 选择安装刚开始使用的是msi版本搞了版本报什么没有兼容服务器的错误,果断放弃之。然后选择了zip压缩版本 2. 错误解压之后在进入bin目录,然后运行mysqld --install把服务安装上,然后解压后的mysql的目录下创建一个空的data文件夹,再使用mysqld --initialize-insec

2017-07-19 11:51:20 889

原创 通过cookie和session让http协议变得有状态

session和cookie的理解以及如何http有状态因为http协议是无状态的,也就是说每次连接之后就不会记住上一次连接,如果是要登录才能查看的信息,就对用户体验很不好了。这篇文章我们介绍在客户端和服务端如何使得http协议有状态。Cookiecookie的工作机制是用户识别及状态管理。web网站为了管理用户的状态会通过WEB浏览器,把一些数据临时写入用户的计算机内,接着用户访问该web网站的时

2017-05-21 13:33:03 3093

原创 在linux安装Nginx以从http升级到https

在linux安装Nginx以从http升级到https本文章以cent OS为例说一下在linux平台下安装Nginx下的一些经验。可以通过yum 安装通过命令yum -y install nginx就能进行安装,剩下的就是自己进行一些防火墙和配置文件的配置。 但是上面的不能指定版本,也就是说不能下载很新的版本,如果对版本有要求的要是要看下面的方式。解压Nginx压缩包创建用户Nginx使用的ww

2017-05-21 10:33:27 4258

原创 搞懂HTTPS的过程和原理

最近想重构自己的个人网站+升级到http/2顺便学习一些新的知识。 如果想升级到http/2那么就要先吧网站升级到https,这是因为在现在这个阶段所有的浏览器都只支持HTTP/2 Over TLS,也就是说浏览器中的http/2必须基于HTTPS的部署。什么是https因为一般的http协议是明文传输的,是不会进行保密的,因此使用http协议传送隐秘信息的时候是十分不安全的。所以网景公司就设计了

2017-05-10 16:50:15 8509 3

原创 给自己的mongodb设置密码吧

今天含着热泪写下这篇文章,在今年的二月份上线的自己的个人博客,今天一看竟然被别人删除了数据库,我的心中有一种动物飞奔呀。虽然是有文章备份的,还是对我造成了很大的上海,所以痛定思痛写下这篇文章。能被攻击的两个地方我思考几点我的个人网站能够被攻击的几个地方:在评论区有输入文本的地方,可能造成XSS公司,但是在项目上线的时候已经经过多次测试了,应该不会是这方面的问题mongodb数据库没有使用密码,可

2017-05-10 15:27:00 2321

原创 poj 2677 双调欧几里得 dp

这个题目的思路可以参考小紫书的269页,动态规划初步那一章的思路。 这里虽然和书中描述的不一样,但是大致的思路是一样的: dp[i][j]表示两个人分别在i位置和j位置的最小花费,当前这一步有两个决策i选择或者j选择,所以状态转移方程如下: dp[i+1][j]=min(dp[i+1][j],dp[i][j]+dis(p[j],p[i+1]))dp[i+1][j] = min(dp[i+1][

2017-05-09 20:15:41 403

原创 hdu 4513 吉哥系列故事——完美队形II Manacher变形

传送门:吉哥系列故事——完美队形II马拉车的简单变形,如果不懂Manacher算法请移步:Manacher算法讲解AC CODE#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int MX = 1e5 + 5;int A[MX];int

2017-04-04 13:43:47 513

原创 poj 1470 Closest Common Ancestors LCA离线

传送门:Closest Common Ancestors基本的LCA的离线版本,如果不懂请移步LCAAC Code#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int MXN = 1e3 + 7;const int MXM = 3e5

2017-04-04 10:53:50 669

原创 第五届蓝桥杯-9.地宫取宝 (记忆化搜索)

传送门:第五届蓝桥杯-9.地宫取宝dp[i][j][k][l]dp[i][j][k][l]表示在第(i,j)(i,j)位置拿了kk件物品中的最大价值为ll的方法数。然后记忆化一下就可以了AC代码#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const

2017-03-30 13:32:48 658

原创 CodeForces - 711C Coloring Trees 三维DP

题目大意输入nn,mm,kk,n表示有多少棵树,m表示有多少中颜色可以给树添加,k表示完美树的个数, 下面的n行表示给第ii棵树染色jj需要的花费,问把树染成k个完美树需要的最小花费。 第二行0表示该树没有颜色,其余表示树已经有该颜色了不能添加颜色了解题思路dp[i][j][k]dp[i][j][k]表示染完第ii棵树,使用的是jj燃料,完美数为kk的情况下的最小花费,很明显我们要根据当前书是否

2017-03-11 21:41:12 385

原创 CSU1817 Bones’s Battery 二分+Floyd+dp

题目大意有一辆汽车,在最开始的时候油箱是满油的,没经过一段路程就要浪费一定油量,问在保证能够遍历每个节点的通知油量的容量最少是多少。解题思路首先要二分答案,看到数据量这么大就很容易看出来,然后首先第一遍Floyd处理出每个任意一个节点到任意一个节点的最短距离,然后二分油量,我们设dp[i][j]从i节点出发到j节点能否到达,如果两点之间的最短路小于或者等于二分后的油量那么我们就设置dp[i][j]

2017-03-11 20:06:07 478

原创 JSONP跨域请求+简答实现百度搜索

什么是跨域呢?比如说ajax必须在自己的域(名)之下,才能进行异步的请求,如果不是在同一个域之下就不能进行请求,会报错。比如说我们用ajax去请求腾讯的API如果我们的这个域不在腾讯那个接口的’白名单’里面,腾讯的接口就会拒绝给我返回数据。但是大多数情况下,我们不可能每次都去去相应的网站申请一个’白名单’,这个时候我们就要用到跨域这种方法,跨域有很多方式比如说用iframe但是这种的可操作性太差了,

2016-12-31 19:24:39 3872

原创 UVA - 10054 The Necklace 欧拉回路

题目大意给出两个数字是一条边,然后找出任意一个欧拉回路。 无向图欧拉回路的条件: 1. 要联通 2. 每个节点度必须是偶数这个简单题目卡了我一下午,结果就是少输出了空行;AC代码#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int

2016-12-17 15:45:55 511 1

原创 HTML5本地数据库存储的应用

上一篇 文章介绍了一下本地数据库,已经相关的API,这篇文章我们利用上面的知识制作一个小demo。 做出来的界面如下: 看起来是很普通的,简单地功能就是我们初学js的时候 要做的功能,增加 一行数据,删除一行数据,双击的时候能够编辑数据,但是比以前做的东西要多了 一个按钮那就是点击保存。 什么叫点击保存呢?就是保存之后下次在进入这个 界面的时候数据并不会清空。而是显示已经存在数据库中的数

2016-11-27 13:13:26 2086

原创 HTML5中本地数据库存储及其应用

上一篇文章说过HTML5提供了代替的cookie的简单存储,这次主要说一下本地存储的数据库。本地数据库1.本地数据库介绍对于简单的数据,使用sessionStorage和localStorage能够很好地完成存取,但是对于处理复杂的关系型数据, 它就力不从心了。这也是 HTML 5 的“Web SQLDatabase”API 接口的应用所在。我把它理解成一个Html5环境下可以用Js执行CRUDC

2016-11-27 11:59:18 1551

原创 HTML5中的本地存储及其相关例子

简单存储HTML5HTML5 提供了四种在客户端存储数据的新方法,即localStorage 、sessionStorage、globalStorage、WebSql Database。 前面三个适用于存储较少的数据,而 Web Sql Database适用于存储大型的,复杂的数据,我习惯把前面的三个称之为小存储。简单储存和cookie的区别 简单储存 cookie 存储量大,可以达到5

2016-11-26 15:27:03 3218

原创 在页面中引入百度地图API的步骤以及Geolocation简单的使用

在页面中想要展示的页面中使用百度地图的API十分的简单而且是十分有用的。下面先介绍一些HTML5中地理位置的一些知识。 地理位置(Geolocation)是HTML5中重要的特性之一。提供了确定用户位置的功能,借助这个特性能够开发基于位置信息的应用,使得开发人员不用借助其他软件就能轻松实现位置查找,地图应用,导航等功能。Geolocation的基本原理1. GPSGPS基本原理是测量出已知位置的

2016-11-26 13:12:26 6069

原创 2016ACM亚洲区域赛北京站游记

省赛总结(补)由暑假集训接近结束组建成的队伍,在省赛的时候本以为湖南省的实力比较弱的,能保个银结果却等到了一题铜的时代,造了个铜。省赛失败的时候总结就是: 1. 三个人一起参赛的机会少,导致经验不足; 2. 计算几何的题目做的比较少,导致模板都不会用 3. 第一次参赛可能是太紧张,就算冷静五分钟也能A掉第一题本来是作为签到题对2016取模的题目,竟然被我卡到了最后。最后十分钟开始乱搞的我已经

2016-11-15 23:08:35 1768

原创 玲玲学院1054 - String cut 乱搞字符串

传送门:1054 - String cut题目大意给定一个字符串,要求删除一个字符,要求每一个不重叠的子串是一样的!解题思路只要求出n−1n-1的所有约数就可以,在1e51e5内的数约数不会超过128个,从小到达遍历每一个约数,然后进行判断,如果成功一次就退出循环,时间复杂度为O(128n)O(128n)AC代码#include <cstdio>#include <cstring>#includ

2016-11-05 23:47:40 723

原创 hdu 5919Sequence II 主席数的应用 2016CCPC长春

传送门:Sequence II题目大意这个题目读题是个大困难呀,不好读; 给定一个长度为n的串,q次查询每次查询[L,R][L,R]区间中的数字的第一个在整个区间中的位置!强制在线操作;解题思路主席树的套路题目;知道主席树的人一定做过主席树的两种应用的题目就是求给定区间的第K大,还有给定区间[L,R][L,R],问这个区间中不同数字的个数! 这个题目就是对主席树的这两个应用的综合考察,我们先把这

2016-11-05 21:10:14 433

原创 SPOJ - DQUERY 主席树求区间中不同数字的个数

传送门:SPOJ - DQUERY题目大意给定一个序列,求然后有q次查询求[L,R]区间中不同数字的个数解题思路主席树模版类型题目,离散化,更新查询AC代码#include <cstdio>#include <iostream>#include <map>using namespace std;const int MX = 1e5+5;const int N = MX*20;int n,

2016-11-04 18:34:52 1164

原创 poj 2104 K-th Number 主席树+超级详细解释

传送门:K-th Number题目大意:给出一段数列,让你求[L,R]区间内第几大的数字!在这里先介绍一下主席树! 如果想了解什么是主席树,就先要知道线段树,主席树就是n棵线段树,因为线段树只能维护最大值或者最小值,要想求出第二大的数字怎么办呢?两颗线段树呗!好,那么第n大呢,就可以构造n棵线段树,这样的内存是显然会爆掉的,那么怎么办呢?因为每一次更新都是更新的是从叶子节点到根节点的一条路,路的长

2016-11-02 21:45:12 4974

原创 hdu 5952 Counting Cliques 暴力搜索 2016沈阳区域赛

题目链接:hdu 5952 Counting Cliques 题目大意n≤100 个点,m≤1000 条边的图,求大小恰好是 s≤10 的团的数量。解题思路因为题目中已经说了每个点的度不超过20,并且s≤10s≤10,我们就可以按照每个节点为起点进行搜索,只要搜索到了就把答案+1,还有一个问题就是怎么保证搜索的时候不重复的问题,我们可以额外的申请一个数据结构,判断当前的节点是不是和已经在这个数据结构

2016-10-31 20:47:11 673 1

原创 神级遍历二叉树的方法(Morris算法)上

在前面的文章中我们介绍了关于二叉树的三种遍历方式的递归和非递归的形式!时间复杂度为O(n)O(n),空间复杂度也为O(h)O(h)(h为树的高度),对于每个节点我们都要访问一遍,所以时间复杂度是没有办法优化了, 但是想一下,我们为什么要申请额外的数据结构,这是因为二叉树这种结构,在处理完一个节点是时候很容易做到访问下层,但是很难做到访问上层,我们申请额外的数据结构就是为了保存当前节点的父节点! 下面

2016-10-17 18:18:49 7218 1

原创 打印二叉树的边界节点 c++实现

给定一颗二叉树的头结点,按照下面的规则实现二叉树的边界节点的逆时针打印。头结点的边界节点叶子节点为边界节点如果节点在所在层的最左边或者最右边,那么也是边界节点比如下图这棵树: 程序流程1.得到二叉树上每一层最左和最右的节点,用上图的例子来说,这个记录过程如下: - 最左节点 最右节点 第一层 1 1 第二层 2 2 第三层 4 6 第四层

2016-10-16 20:09:31 1625

原创 二叉树的递归和非递归方式的三种遍历

二叉树的三种遍历方式,前序遍历,中序遍历,后序遍历,中的前中后都是指的是根节点的访问顺序,这三种遍历方式的概念在这里就不多说了,太普遍了!二叉树的建立我们这里以前序遍历为例: 我们先定义好结构体struct Tree{ Tree* lson; Tree* rson; int data;};Tree* T;下面是前序建立二叉树:void c

2016-10-16 13:18:57 12738 6

原创 hanoi塔问题解析(二)

在上一篇文章中解释了一下hanoi塔的基本过程和以及路径的打印! 在这片文章中我们主要的说一下当前运行到得状态时第几个最佳状态! 在解决上面的问题之间我们还要解决的就是hanoi塔移动的最小步数hanoi塔移动的最小步数我们之后hanoi塔移动的三个步骤: 1. 将A柱子上面的三个移动到B柱子上面(借助C柱子) 2. 将A柱子上面中最下面的圆盘移动到C柱子上面 3. 将B柱子上面的所有

2016-10-14 20:17:07 2034 1

原创 hanoi塔问题解析(一) c++实现

什么是hanoi塔? 汉诺塔问题:古代有一个梵塔,塔内有三个座A、B、C,A座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个和尚想把这64个盘子从A座移到B座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。如下图 问题解答 问题定义 我们把左边的柱子叫做A,中间的柱子叫做B,右边的柱子叫做Chanoi塔的搬运过程; i

2016-10-14 19:10:39 28182 5

原创 归并排序及其应用 c++实现

归并排序是基于分治的思想,分治策略:将原问题划分为n个规模较小的并且结构与原问题相似的子问题,递归的解决这些子问题,然后合并其结果,得到的就是原问题的解了。 分治的模式在每一层的递归上都有三个步骤: 1、 分解:将原问题分解为一系列的子问题 2、 解决: 递归的解决各个子问题。若子问题足够的小,则直接求解。 3、 合并:将子问题的结果合并,变为原问题的解。归并算法完全依照于分治的策略: 1

2016-10-13 18:51:20 761 2

原创 RSA加密算法的基本流程

本文只是说一下RSA加密的流程,对于其他的不做过多的介绍!首先找到两个大素数 p,q计算n = p*q , = φ(n)(p-1)*(q-1),其中φ(n)表示的是n的欧拉函数值任意选择一个满足要求的证书e,满足1 < e <φ(n),并且gcd(φ(n),e)==1计算d,满足(d*e)%φ(n) ==1,即d是e在模φ(n)下的乘法逆元,因为e和φ(n)互质,所以他的乘法逆元一定存在以

2016-10-11 18:25:29 12681 1

原创 LZ认为好的文章和地址,外人勿看

TCP/IP安全性问题分析

2016-10-10 20:04:36 622

原创 hdu 5546 Ancient Go(2016ccpc) 暴力DFS

传送门:[hdu 5546 Ancient Got](http://acm.hdu.edu.cn/showproblem.php?pid=5884解题思路先找到对方的棋子也就是’o’点,然后判断对方点旁边的’.’是不是大于1如果大于1是肯定不行的,否则就是正确的!AC代码#include <cstdio>#include <cstring>#include <iostream>using na

2016-09-17 23:06:06 655

原创 hdu 5548 sort 2016青岛区域赛网络赛 二分+队列优化

传送门:hdu 5548 sort这个题目的标准复杂度是o(n*lgn),据说如果多乘一个lgn优化一个输入还是可以过得!也就是使用优先队列的做法! 这个题目还有一个坑点就是不能每次只是贪心,就比如说枚举到k=4的时候1,2,3,4,5这个数列的最小值是先把前两个合并变为数列3,3,4,5然后在进行合并才是最少的花费,这样的花费是3+15=18,然而如果按照贪心的思路去做,第一次先枚举前四个那么第

2016-09-17 22:57:13 557

原创 poj 2559 Largest Rectangle in a Histogram 求面积最大的矩形(单调栈)

Largest Rectangle in a Histogram题目大意给出一个数N代表有多少个矩形,然后下面有N个数代表每个矩形的高度,宽度均为1。最后求这N个矩形组成的最大面积!解题思路很容易想到的就是使用单调栈。维护一个从栈顶到栈低减小的栈! 每次遇到栈顶的元素大于要压入的元素就要,出栈然后和当前的最大面积取最大值,这样一直下去,最后栈中就剩下一个从栈顶到栈低减小的栈。最后变为的栈就像下面这

2016-08-31 00:05:03 3102

HTML5温蒂数据库

HTML5温蒂数据库

2016-11-27

空空如也

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

TA关注的人

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