自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

努力打工

一天学一点,加薪乐无忧

  • 博客(118)
  • 收藏
  • 关注

原创 Golang 学习进阶资料整理

基础Go语言中文文档(官方文档) Iris中文文档(goWEB框架) Go入门视频 (密码:zd5x)进阶Golang的反射(nil!=nil)

2020-01-03 14:59:52 257 1

原创 2019 字节跳动 秋招面试

一面:1.TCP与UDP的区别,及应用场景2.基于UDP实现可靠性传输3.进程调度算法4.static的作用5.输入url后发生了什么6.简述什么是http协议7.cookie中包含什么信息————————————————————————————————————————1.定义返回最大值的宏(注意()因为参数可能是表达式)2.给定有序数组,在某个节点进行翻转...

2019-07-23 15:48:51 432

原创 Go语言学习-5-捧腹网爬虫练习2

package mainimport ( "fmt" "net/http" "os" "regexp" "strconv" "strings")func HttpGet(url string) (result string, err error) { resp, err1 := http.Get(url) if err1 != nil { err = err1 ...

2019-04-21 09:52:23 221

原创 Go语言学习-4- 百度贴吧并发小爬虫

package mainimport ( "fmt" "net/http" "os" "strconv")func HttpGet(url string) (result string, err error) { resp, err1 := http.Get(url) if err1 != nil { err = err1 return } defer resp...

2019-04-21 09:51:02 116

原创 Go语言学习-3-传输文件Sender+Receiver

Client:package mainimport ( "fmt" "io" "net" "os")func SendFile(path string, conn net.Conn) { // Open file as read-only f, err := os.Open(path) if err != nil { fmt.Println("os.Open er...

2019-04-17 20:45:32 250

原创 Go语言学习-2-简单并发式服务器

package mainimport ( "fmt" "net")func HandleConn(conn net.Conn) { //delaye use conn.close defer conn.Close() //get Client IP_address message addr := conn.RemoteAddr().String() fmt.Println...

2019-04-16 21:12:15 126

原创 Go语言学习-1-Socket初学

辅助工具:netcat : 下载链接解压后配置相关路径相关函数源码:Listen:func Listen(network, address string) (Listener, error) { var lc ListenConfig return lc.Listen(context.Background(), network, address)}Read:...

2019-04-16 20:06:44 108

原创 TCP粘包问题

1、什么是粘包: 简单的说就是通过TCP协议发送了多条独立的数据,但接收的时候,有些数据不幸的合并成了一个。比如客户端向服务器发送两个命令: 1)Hello 2)world 但是服务器接收的时候,很可能不是分两次接收,而是一次接收到 Helloworld2、粘包出现原因: 由于TCP协议本身的机制(面向连接的可靠地协议-三次握手机制)客...

2019-03-24 22:02:28 81

转载 Socket入门详解

一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有s...

2019-03-24 22:00:00 963

原创 leetcode 983. 最低票价 dp

class Solution {public: int mincostTickets(vector<int>& days, vector<int>& costs) { int dp[400]; memset(dp, 0, sizeof dp);dp[0]=costs[0]; for(int i=1;...

2019-03-01 11:16:50 202

原创 leetcode 7.整数反转

class Solution {public: int reverse(int x) { long long t = 0; while(x!=0){ t*=10; t+=x%10; x/=10; } if(t>=INT_MAX)...

2019-03-01 10:35:35 83

原创 leetcode 1.两数之和

class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int>vec; for(int i=0;i<nums.size();i++){ for(int j=i+1;j&l...

2019-03-01 10:29:40 59

原创 LeetCode 21. 合并两个有序链表

代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNo...

2019-03-01 09:57:37 85

原创 Can you answer on these queries 3 SPOJ GSS3 线段树

题意:给定长度为N的数列A,以及M条指令(N,M<=50000),每条指令可能是以下两种之一:1."0 x y",把A【x】改成y。2."1 x y",查询区间[x,y]中的最大连续子段和。对于每次询问,输出一个整数表示答案。 分析:一个区间的最大连续子段和只有三种情况。图片来自:https://www.cnblogs.com/shenben/p/6361623...

2018-12-06 21:29:28 102

原创 欧拉函数证明

欧拉函数:φ(a) :小与a与a互质的数的个数(1)当a为质数时,φ(a)的结果为 a-1(2)当a为1时,φ(a)的结果为1(3)当a为两个素数乘积时,a = b*c -> φ(a) = φ(b)*φ(c)证明:欧拉函数是积性函数:由于b为质数,c为质数,p1是小于b且与b互质的某个整数,p2是小于c且与c互质的某个整数。所以对应的每一对p1*p2对于a来说都与a互质。...

2018-11-17 15:26:43 578

原创 new 与malloc申请内存区别

首先我们需要了解堆与栈的概念。区分堆内存与栈内存的区别。以及堆与栈访问速度的差异的原因。 1.属性:new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持。2.参数:使用new 操作副申请内存分配时无须制定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要显式地指出所需内存的尺寸。3.返回类型:new操作...

2018-11-05 22:02:42 1239

原创 C++内存分类

内存分为5个区:栈,堆,自由存储区,全局/静态存储区,常量存储区。 栈区:内存由编译器再需要时自动分配和释放。通常用来存储局部变量和函数参数。(为运行函数而分配的局部变量,函数参数树,返回地址等存放在栈区)。栈运行分配内置于处理器的指令之中,效率高,但是分配的内存容量有限。 堆区:内存由new分配的内存块,他们的释放搬移其不管,有我们的应用程序区控制,一般一个new就要对应一个de...

2018-11-05 21:24:55 1889 2

原创 堆(heap)内存与栈(stack)内存的区别

数据结构中描述堆栈:堆(heap):是一种非连续的树形存储数据结构,每个节点存在一个值,整个树是经过排序的,特点是根节点最小(小顶堆)或根节点最大(大顶堆),且根节点的两个子树也是一个堆。常用来实现优先队列,存取随意。栈(stack):是一种连续存储的数据结构,具有先进后出的性质。通常的操作有入栈(压栈),出栈和栈顶元素。想要读取某个元素就要将之前的元素全部出栈,才能完成。内存中的栈区...

2018-11-05 15:56:50 1469

原创 堆排序 - 优先队列(实现)

优先队列:优先队列的实现是大顶堆(优先级最高的元素再前面),对于节点数量为n的大顶堆,插入元素与弹出元素的时间复杂读为O(log(n)),询问的时间复杂度为O(1)。首先我们需要将数组映射到完全二叉树上。对于数组[16, 7, 3, 20, 17, 8]映射为:从后到前调整非叶子节点与子节点的位置:对于大小为n的二叉树,需要调整的第一个节点为n/2号节点。为了方便理解我...

2018-11-04 21:37:35 232

原创 智能指针实现C++

#include <iostream>using namespace std;template <typename T>class Shared_ptr{private: T* _ptr; size_t *_count;//unsigned int *_count;public: Shared_ptr(T* ptr = nullptr)...

2018-11-03 20:49:13 113

原创 智能指针原理(整理)

智能指针智能指针主要包含:shared_ptr,unique_ptr,weak_ptr。三种模板类,头文件为<memory>,c++11之后版本使用。智能指针的作用有:C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理堆内存。...

2018-11-02 21:57:16 684

原创 空悬指针&&野指针

空悬指针(dangling pointer)指向已经销毁的对象或已经回收的地址,以下情况可能出现空悬指针:#include <iostream>int main(){ char *d = NULL; { char c = 'c'; d = &c; } //变量c释放,d变为空悬指针}#incl...

2018-11-02 20:53:16 158

原创 c语言 malloc 函数用法

函数声明:Tips: void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。malloc 函数申请空间需要使用free释放。void* malloc(int size) malloc向系统申请size字节的内存空间,返回值类型为void *。使用说明:int *p;p = (int *)malloc( sizeof(in...

2018-11-02 20:40:14 4719

原创 C++ 多线程编程

线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序。一般情况下,两种类型的多任务处理:基于进程和基于线程。基于进程的多任务处理是程序的并发执行。 基于线程的多任务处理是同一程序的片段的并发执行。pthread_t 定义线程变量。pthread_create(thread, attr, start_routine, arg);创建新的线程,并让其执行,参...

2018-10-24 21:34:44 971

原创 poj 2689 Prime Distance (素数区间筛)

题目大意:已知区间[L,R],L,R的取值为[1,1e9],abs(R-L) <= 1e6。求区间内相邻素数的差值最小值,和差值最大值。题目分析:线筛法求出2~sqrt(R)之间的素数。对于每个素数p,求出[L,R]中被p整除的数,时间复杂度为O(n*log(n))#include <cstdio>#include <cstring>#i...

2018-10-22 21:19:08 107

原创 概率dp hdu 3853 LOOPS

题目大意:在n*m的地图中,每个点有三种情况;1.停留在原地概率为a。2.向右走一格,概率为b。3.向下走一格,概率为c。数据保证有解。每做一次决定需要消耗两颗仙丹,从1,1到n,m需要消耗仙丹的期望值。题目分析:到着dp一下,或者dfs。AC代码:#include<bits/stdc++.h>using namespace std;#de...

2018-10-18 10:58:34 119

原创 hdu 4035 Maze 树形dp + 期望值

题目大意:人需要逃离一棵树,每个节点有三种可能。1.回到1节点,概率为k[i];2.逃出树,概率为e[i];3.逃到下一个临近的节点。(1-k[i]-e[i])求逃离树的天数的期望值。难点:节点之间具有后续性。可以返回父亲节点。题目分析:(节选自kungbin博客)设 E[i]表示在结点i处,要走出迷宫所要走的边数的期望。E[1]即为所求。 叶子结点...

2018-10-18 10:24:08 157

原创 ZOJ 3640 Help Me Escape 概率dp

题目大意:人需要逃出地洞,每个地洞有自己的守卫者。守护者的战力为c[i]。每天人会被随机的分配到一个地洞的出口前。当人的战力值f>c[i]时花费天即可逃出。否则,战力值加上c[i],天数加一,第二天随机出现在一个地洞口。问逃出去的天数的期望值。题目分析:分类讨论d[i]是武力值为i的时候逃出地洞需要天数的期望值。1.i> c[j] , d[i] +=...

2018-10-17 20:50:09 111

原创 Qt学习之路-0

Qt创建项目:工具:Qt Creater1.创建空的Qt项目:2.为项目命名一路默认下一步得到:该Qt项目目前仅包含一个pro项目文件。3.添加第一个main.cpp文件5.编写文件 ,.pro与main.cpp6.执行 结果:  ...

2018-10-17 19:12:32 126

原创 概率dp SGU - 495 Kids and Prizes

题意:n个礼物盒子,m个人去开盒子,每个盒子只有第一次被打开才能拿走里面的礼物。m个人拿走的礼物数量的期望值。题目分析:设d[i]表示第i个人拿到礼物的概率。结果显然是已知d[i]当我们需要处理d[i+1]时。当d[i+1] = (1-d[i])*d[i]+d[i]*(d[i]-1/n)1.当第i个人拿不到礼物概率为1-d[i],第i+1个人拿到礼物的概率等于d[i...

2018-10-16 09:19:06 103

原创 概率dp(入门)SPOJ - FAVDICE Favorite Dice

题目原意: 已知n面骰子,求期望值:n面全部掷出。#include <bits/stdc++.h>using namespace std;int main(){ int n; int T; scanf("%d",&T); while(T--){ cin>>n; double d[n];...

2018-10-15 21:00:16 188

原创 SPOJ DQUERY 区间不同数的个数(树状数组/主席树)

题意:    已知n个整数。询问q次。想知道每个区间内不同数的个数。树状数组分析:    先将所有查询按区间右端点从小到大排序,如果一个数已经出现过就先把以前位置上的删掉然后在新的位置上插入,这样[l,r]中重复的就只计算了一次 。#include<bits/stdc++.h>using namespace std;#define SIZE 100005#de...

2018-07-24 15:38:53 291

原创 Codeforces 935D Fafa and Ancient Alphabet(概率+逆元)

题意:    有长度为n的两个数字串,数字范围在(1,m)如果被遮盖的数字就是0    问第一个串比第二个串大的概率是多少。    概率对1e9+7取膜分析:       #include<bits/stdc++.h>using namespace std;#define mp make_pair#define LL long long#define N 100005#def...

2018-04-18 20:22:08 187

原创 Codeforces 935B Fafa and the Gates

题意:    问小A能穿过几次x=y的直线AC:    #include<bits/stdc++.h>using namespace std;#define mp make_pair#define LL long long#define N 100005#define inf 0x3f3f3f3fchar str[N];int main(){ int n; ...

2018-04-18 20:02:47 180

原创 Codeforces 935C Fifa and Fafa

题意:    一直小A和小B是室友同住在一个公寓之中,但是小A不想要小B蹭自己的wifi。现在知道小B所在点求小A把wifi安装在哪里可以使得覆盖公寓的半径最大。 代码: #include<bits/stdc++.h>using namespace std;double R;double sqt(double a,double b,double c,double d){ ...

2018-04-18 20:02:05 246

原创 Codeforces 935A Fafa and his Company

题意:    n名员工分为几个小组可以平均分开。小组数不为1分析:    求非自身的因子数。#include<bits/stdc++.h>using namespace std;#define mp make_pair#define LL long long#define N 10005#define inf 0x3f3f3f3fint main(){ int n;...

2018-04-18 19:53:00 166

原创 Codeforce 106C Buns (完全背包)

题意:    现在有nkg的面,和m种馅,如果是只买面做的馒头,c0kg面,做一个d0价值的馒头。m种馅有a,b,c,d四种属性,a馅的量,b制作一个这种面包需要的馅的量,c是需要面的量,d是该种面包能卖多少钱。问最多能销售多少钱。分析:    贪心考虑第一时间否定。动态规划:考虑与结果相关的参数。面的质量i,使用了前j种馅,一共做了k个j馅。d(i,j,k)就是我们要的答案。状态转移:    f...

2018-04-17 00:04:31 250

原创 Codeforce 106B Choosing Laptop

题意:    V想买电脑,花最小的钱,且不是从性能的三个方面都被其他任意一个电脑全部压制的电脑的编号。代码:    #include<bits/stdc++.h>using namespace std;struct Node{ int s,r,h,c,p; bool operator<(const Node &a)const{ retu...

2018-04-16 23:58:06 173

原创 Codeforce 106A Card Game

题意:    四类牌,每类有9个等级。王牌这种类大于其他的类,同类型的比等级,不同类型的且没有王类,无法比较。问先手是否能获胜。#include<bits/stdc++.h>using namespace std;int Num(char c){ if(c=='T')return 10; if(c=='J')return 11; if(c=='Q')retu...

2018-04-16 23:56:00 140

原创 Codeforce 22D Segments

题意:    存在n个区间,我们至少能用多少个点将这几个区间固定住。解析:    我们可以对所有的线段进行一次排序:    bool operator<(const Node &a)const    {        if(a.l==l)return r>a.r;        return l<a.l;    }    我们就需要不断往数组中推入新的点。并更新。1.如果...

2018-04-15 16:35:35 149

空空如也

空空如也

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

TA关注的人

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