自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

尘的博客

生命不息,学习不止。

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

原创 博客迁移至hexo

博客已经迁移到新的博客虽然迁移中遇到了一些bug有一部分文档迁移失败了。

2019-03-18 17:47:45 590

原创 一些函数要记的函数笔记 一些玄学操作

关闭同步流 std::ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);求二进制 1的个数。int n = 15; //二进制为1111 二进制1的个数cout<<__builtin_popcount(n)<<endl;//输出4int n = 15;//二进制为111...

2018-07-25 10:28:54 384

原创 网易秋招面试

一面一个概率题不记得是啥了一个排错题 问了register + const 有啥优化, voliate一个数据库语法(没写出来)8个排序内存对齐问题,计算结构体的大小(指针大小,虚拟地址)C++11里面右值引用问题,拷贝构造函数,赋值函数,移动拷贝函数的调用情况.编译链接问题,如果两个cpp文件同时定义了一个变量,重定义在哪个阶段。4区问题namespace 的使用二面项目面全是项目MMU单元设置上下文切换cacheLine TLB问题三面IO复用,EPOLL两种工

2020-09-09 10:30:00 284

原创 腾讯笔试第5题

题意: 大概就是两种颜色的数,数字是1 - n的,总共2n个数,然后每次可以交换相邻两个数字,最后让两种颜色的数字都是从小到大排序的。举个例子RBBRBR 颜色231123最终要结果是RRBBBR121233也就是把R1移到了最前的位置,B3移到了B2后面。这样总共交换了5次,所以结果是 5。题解: dp[i][j] 表示状态为前 i + j 已经放了i个红色,j个黑色,那么后面一个要么把 i + 1 的红色移到后面,要么是 把j + 1的黑色移到后面。所以只要知道这两种状态的移到后面来需要

2020-09-08 16:35:07 320

原创 简单记录一下春招旅程 腾讯&字节

去了字节,腾讯offer 给的太慢了,等了两个星期。本来以为没时间面字节了,结果字节两天全部搞定了。。。,给了口头offer。投腾讯有点毒瘤,点了一下内推链接,直接把我简历投递了。然后顺便就过了。腾讯两面一面linux 进程 和内存共享内存了解吗有哪些锁机制编译器 选项用过哪些Linux命令 (说了一些常用的)shell 脚本了解吗 (这个没用过就没问了)C++有什么特点浮点...

2020-04-02 13:01:24 415

原创 简单做个实验分析一下 new/new[] 和 delete/delete[]

先来介绍下流程。new/new[],他的流程是先开辟了一个空间,然后调用了构造函数。delete/delete[]先调用析构函数,然后释放内存。那么如果new/delete和new[]/deletep[没有配对会出现什么问题。对于这个问题我做了简单的实验。非基础类型也就是自己写的类。先说下结论delete释放new[]只会调用第一个的析构函数,导致内存泄漏。delete[]...

2020-03-05 12:10:59 291

原创 select多路复用 源码剖析

简单说一下5种IO阻塞IO: 一直等待知道数据到来。非阻塞IO: 直接返回有没有数据,没有就直接返回错误。IO复用:将多个IO,放在一起,一个个轮询。信号驱动:设置一个信号,当有IO的信号的时候告诉我。异步IO:直接丢给别人做。可以去看看这个博客。select是IO复用的一种。函数原型如下。int select (int __nfds, fd_set *__restrict ...

2020-02-24 18:52:31 382

原创 简单研究C++ 对象内存布局

关于C++对象布局 看了大佬的博客,大佬的博客过于久远格式比较清奇,我整理了,顺便改了程序能够在 64位机运行。单一的一般继承通俗的讲,一层层下去。#include<iostream>using namespace std;class Parent{public: long iparent;//因为是64位机,所以改成了 long Pare...

2020-02-16 23:30:54 144

原创 C++ 虚拟继承对象布局

自己做实验的时候发现和一些文章上面的有点不一样。#include <iostream>using namespace std;class B{public: long ib; long cb;//全都定义成 long 这个方便看内存,不然不是对齐的public: B() :ib(0x1010), cb(0x1010) {} virtual...

2020-02-16 23:29:43 231

原创 MIT 6.828 (六) Lab 6: Network Driver (default final project)

哦豁,到了这章,大佬的博客已经没了,要靠自己翻译了。Lab 6: Network Driver (default final project)IntroductionLab6 是最后一个实验了,做完这个,一个简单的内核就已经实现了,现在你可以自己做自己的内核。现在,你有一个文件系统,操作系统没有网络堆栈。在这个实验室里你要编写一个网络接口卡的驱动程序。该卡将基于Intel 82540EM芯...

2020-02-06 14:38:05 1008

原创 MIT 6.828 (五) Lab 5: File system, Spawn and Shell

重要的前面基本上已经做了,现在就剩下lab5了。对于这个实验本身要你写的代码不多,但是要自己去看的贼他妈的多。原谅我复制粘贴别人的。Lab 5: File system, Spawn and Shell在本实验中,我们将实现spawn库调用用以加载和运行磁盘上的可执行文件。然后,JOS内核和库构成的操作系统将足以在控制台上运行shell了。这些功能需要一个文件系统,本实验将介绍了一个简单的读/...

2020-02-02 12:05:35 910

原创 MIT 6.828 (四) Lab 4: Preemptive Multitasking

为了方便查看最终源码,我将代码放到了我的github上。后面会把前面lab的也会添加进去。lab4有很多细节,所以有些东西我会分一下测试程序。因为这个实验内容有点多分成了两篇。Lab 4: Preemptive MultitaskingPartA:为JOS增添多处理器支持特性。实现round-robin scheduling循环调度。添加一个基本的环境(进程)管理系统调用(创建和销...

2020-01-30 12:50:03 1820

原创 MIT 6.828 (三) Lab 3: User Environments

Lab 3: User EnvironmentsIntroduction在这个实验中,我们将实现操作系统的一些基本功能,来实现用户环境下的进程的正常运行。你将会加强JOS内核的功能,为它增添一些重要的数据结构,用来记录用户进程环境的一些信息;创建一个单一的用户环境,并且加载一个程序运行它。你也可以让JOS内核能够完成用户环境所作出的任何系统调用,以及处理用户环境产生的各种异常。Getting...

2020-01-18 19:05:01 1486 1

原创 MIT 6.828 (二) Lab 2: Memory management

Lab 2: Memory management做这个实验之前首先需要知道什么是分页。分段在这个实验里面没用到过。前面是一大堆教你怎么获取lab2资源的,我不知道怎么弄,后来乱搞了一下,就把lab1的覆盖掉了,变成了lab2。这个我相信就我不懂。Part 1: Physical Page Management第一个是物理页面管理。boot_alloc() //这个是系统加载前做个物理内...

2020-01-10 23:03:49 1267

原创 MIT 6.828 (一) Lab 1: Booting a PC

获取完资源就开始干了。我这里就做了个大概的内容分析,具体的还是跟着那几个大佬吧前面一大堆都是没用的,就是告诉一些作业的提交。Part 1: PC Bootstrap这个并没有要你做啥,就是让你 熟悉下汇编。然后让你知道怎么运行那个内核的,这些都是些不用讲的东西,看看就行了。说一下,这个内核退出说是ctrl+a x,意思是先按ctrl+a,再按x然后就开始来重点了,第一个是让你知道现在...

2020-01-06 19:20:32 942

原创 MIT6.828 (零)提前做好送人头准备 随时跑路

被某个大佬带入坑,看看了评价好像确实不错,所以就开始干了。首先第一件事就是搜索资源,像我这么菜的,要是没人告诉我怎么做,基本上是没啥希望的。资源第一个肯定就是官方的了,另外还有,2019的.然后就是一些比较好的大佬的资源。知乎超级详细的某个大佬2014 大佬github这个也是有些应该够用了,也许够了,嗯,也许够了,因为我也只是刚开始。。虚拟机如果做的事 2018年之前的 随...

2019-12-31 20:20:24 1396 1

原创 manjaro18 xfce版 终端字体间距贼大

sudo pacman -S wqy-bitmapfontsudo pacman -S wqy-zenhei

2019-12-16 23:50:34 3536 1

原创 linux0.11操作系统源码剖析fork.c

fork() 用于创建 一个新的进程,一次调用两次返回。父进程返回子进程的PID 子进程是 0.fork() 采用写时复制,也就是 创建的时候 就复制了页表,并没有实际的内存空间,子进程这个时候和父亲共享内存,但是子进程只有 读的权限,当修改的时候 才复制一份。知乎大佬的nettle的回答:linux下的fork()函数传统的fork()系统调用直接把所有的资源复制给新创建的进程.lin...

2019-12-14 13:55:45 810

原创 linux1.0操作系统源码剖析 sched.h sched.c

#ifndef _SCHED_H#define _SCHED_H#define NR_TASKS 64 //系统最多的进程数#define HZ 100 // 系统时钟频率 100HZ#define FIRST_TASK task[0] //任务0是 比较特殊 init()#define LAST_TASK task[NR_TASKS-1] //任务数组里...

2019-12-12 15:56:56 1430 2

原创 leetcode-4. 寻找两个有序数组的中位数

这题挺有意思的,一开始想了半天怎么处理细节,想了半天,没想出来,要不暴力所有情况,结果特么还跑的飞快。这题看一眼肯定知道是二分,两个有序数组,找合并之后的中位数。难搞的就是会出现相同数字,和数组长度是偶数。所以我就搞了一个函数 直接找第 k 个在哪,然后第K个在哪,因为 第 k个可能在第一个数组,又有可能在第二个数组,所以要找两次,找的时候把引用换一下就行了。贼麻烦,细节太难处理了,细节处理我...

2019-12-10 16:51:25 101

原创 FWT快速沃尔什变换-简解及证明

FWT简介FWT 用来求卷积,和FFT很像.三个公式Ck=∑i∣j=kAi∗BjC_k=\sum_{i|j=k}A_i * B_j Ck​=i∣j=k∑​Ai​∗Bj​Ck=∑i&amp;j=kAi∗BjC_k=\sum_{i\&amp;j=k}A_i * B_jCk​=i&j=k∑​Ai​∗Bj​Ck=∑i xor j=kAi∗Bj...

2019-09-10 19:56:36 343

转载 树链剖分原理和实现

树链剖分原理和实现树链剖分就是将树分割成多条链,然后利用数据结构(线段树、树状数组等)来维护这些链。首先就是一些必须知道的概念:重结点:子树结点数目最多的结点;轻节点:父亲节点中除了重结点以外的结点;重边:父亲结点和重结点连成的边;轻边:父亲节点和轻节点连成的边;重链:由多条重边连接而成的路径;轻链:由多条轻边连接而成的路径;树链剖分比如上面这幅图中,用黑线连接的结点都是...

2019-08-24 11:36:36 153

原创 斜率优化DP

什么是斜率优化DP?顾名思义,用斜率优化的DP。推荐一波博客这个大哥将的不错。斜率优化DP,一开始会化成一个式子,像f(j)−f(k)g(j)−g(k)&lt;s(i) \frac{f(j)-f(k)}{g(j)-g(k)}&lt;s(i)g(j)−g(k)f(j)−f(k)​<s(i)满足这个式子可以得到jjj转移比xxx转移要优,其中不出意外,s(i)s(...

2019-08-23 20:16:35 357

原创 2019牛客暑期多校训练营(第十场) J Wood Processing

题意: nnn快木板,合成kkk块木板。相同高度可以合并,不同高度,需要把高的木板砍成和低的木板一样高。问合成kkk块最少浪费多大木板面积。题解: dp[i][j] 表示前j个合成i个木板最小花费面积。转移方程为dp[i][j]=min(dp[i−1][k]+sum[j]−sum[k]+h[k+1]∗(w[j]−w[k]),dp[i][j])dp[i][j]=min(dp[i-1][k]+s...

2019-08-23 20:06:18 232

原创 出神入化的分块 Educational Codeforces Round 71 (Rated for Div. 2) E Remainder Problem

Educational Codeforces Round 71 (Rated for Div. 2) E Remainder Problem题意: 两种操作,一种ax+ya_x+yax​+y,第二种查询∑i=y5e5ai,(i%x==y)\sum_{i=y}^{5e5}a_i,(i\%x==y)i=y∑5e5​ai​,(i%x==y)所有模xxx等于yyy位置的和.题解: %x=y\%x=...

2019-08-23 10:06:16 799

原创 2019 Multi-University Training Contest 10 1011 Make Rounddog Happy

HDU 6701 Make Rounddog Happy题意 : 给你nnn个数,和kkk,找到区间[l,r] max(al,…,ar)−(r−l+1)&lt;=kmax(a_l,\dots,a_r)-(r-l+1)&lt;=kmax(al​,…,ar​)−(r−l+1)<=k 的数量(区间内不能出现有相同数字)。题解: 相当于找区间长度大于区间最大值-k 的区间数量,第...

2019-08-22 15:40:28 159

原创 分治算法

分治算法,顾名思义,分而治之。分治算法,每次将区间减半,化为[l,mid],[mid+1,r]区间,再用解决的两个区间来跟新[l,r],非常典型的例子就是归并排序。归并排序,每次对[l,mid],[mid+1,r]处理,然后O(n)O(n)O(n)合并两个数组,层数O(logn)O(logn)O(logn),每层合并O(n)O(n)O(n)复杂度稳定O(nlog(n))O(nlog(n))O(...

2019-08-22 15:06:23 177

原创 2019 Multi-University Training Contest 9 1007 Rikka with Travels

HDU 6686 Rikka with Travels题意: 在一颗树上选择两条不相交的路径的可能性有多少,路径长度定义为路径的顶点数。题解:初步思考,观察样例可以发现,求的是两条路径的有序对,[2,1],[1,2]不是同一种。我们假设已经知道你选择的一条路径长度为l,只需要找到把这条路径在树中移除,余下的森林的最长路径是多少,假设是rrr,对于长度为lll的路径有多条,然后分别求出对应的r...

2019-08-19 21:39:41 273

原创 2019牛客暑期多校训练营(第八场)Just Jump

题意: 终点位置为LLL,中间点是1,2,⋯&ThinSpace;,L−11,2,\cdots,L-11,2,⋯,L−1 ,开始位置在000,每次必须走至少ddd步,在第tit_iti​步不能出现在pip_ipi​这个位置,问从000到LLL,有多少种走法。**题解:**解法挺简单的,先算出没有mmm个约束的情况下,求一个值,这个f[i]=∑j=0i−df[i]f[i] =\sum_{j...

2019-08-14 22:03:24 123

原创 2019牛客暑期多校训练营(第八场) Distance

2019牛客暑期多校训练营(第八场) Distance题意: 给你一个 n∗m∗hn* m * hn∗m∗h 的空间,每次插入一个点,或者询问空间中点到这一点的最小曼哈顿距离。题解:1.HASH+三维BIT三维BIT,对于这种写法,太巨了,n∗m∗h&lt;1e5n * m * h &lt; 1e5n∗m∗h<1e5 特么直接用三维BIT 存一下就可以了,枚举八个方向...

2019-08-13 21:49:49 142

原创 2019牛客暑期多校训练营(第八场)Flower Dance

2019牛客暑期多校训练营(第八场)Flower Dance** 题意: ** 给nnn个点 mmm条边,每条边有一个权值区间,表示能通过这个区间的 值的范围,问从111到nnn可以通过的权值有多少个。** 题解: **1.DFS线段树+离散化+并查集这个线段树,其实也不能算是个正常的线段树,他build 的之后就没啥用了,没有更新和查询.。。直接在线段树上dfs,首先把权值离散化,然后存...

2019-08-13 21:47:42 145

原创 2019牛客暑期多校训练营(第七场) E Find the median

2019牛客暑期多校训练营(第七场)Find the median题意: 先把输入处理一下,没啥问题吧。处理完后应该相当于每次在一个集合里面加入l,r之间所有的数,问中位数是多少。题解: 这题很有意思,离散化+线段树 就能做,就相当于在线段树上求第sum/2个数在哪。比较朴素的就是先把所有的l,r保存下来,然后把他离散化,然后对离散化后的值做插入删除操作,我根据线段树动态开点的操作,写了个在...

2019-08-09 19:59:00 273

原创 2019 Multi-University Training Contest 5 1002 three arrays

HDU 6625 three arrays题意: 给两个数组,求两个数组两两异或后最小字典序。题解: 求字典序最小,也就是求值最小,如果是求一个数和另一个数组里面的一个值异或最小,很显然就是字典树,就是在字典树上优先取同位相同,没有再取同位相反。求两个数组异或之后字典序最小,其实也可以按照同样的方法求解。对两个数组分别做成一颗字典树,求两颗线段树异或之后字典序最小,就是两颗树异或值尽可能小。一...

2019-08-09 19:44:21 246

原创 回文树

个人博客这个东西学会了AC自动机 理解这个应该不难,AC自动fail指针保存了一个最长匹配后缀,这个也差不多。这个保存了最长匹配后缀回文串。举个例子老子找了半天没找到原本看过的博客,只找到了这张图片。随便写几句混一混就过去了。[外链图片转存失败(img-nQdd5HZI-1565181289944)(https://i.loli.net/2019/08/07/CVL9sbFBohiyI6p...

2019-08-07 20:36:09 128

原创 AC自动机

AC自动机用途给多个字符串t,再询问一个字符串s,问有多少个字符串t出现在询问的字符串s中。前置技能学AC自动机之前,先学会什么是字典树,什么是kmp。kmp我写过一篇博客,就不讲了,就是next 数组保存一个最长匹配前缀。字典树就更简单了,每个节点从根节点开始,出现一个字符就在父亲节点上连上下一个节点,也不多说。有需要再写一篇博客。AC自动机对于这个玩意,都说是字典树上跑KMP,到也没...

2019-08-07 11:05:10 146

原创 deepin 重启关机待机注销出现kernel:NMI watchdog: BUG: soft lockup - CPU#0 stuck for 26s

一开始搜deepin 的解决方案,找了半天没找到,结果找Ubuntu 找到了,deepin 和Ubuntu 同源,解决方法是一样的进入选择安装deepin 的时候 (还没有进入安装页面的时候,有3个选项给你的时候,第一个是install deepin,第三个是check ISO md5 ,第二个忘记了) , 按住ctrl + x,会出现一个界面,然后在文本中找到 quiet splash -...

2019-08-05 11:42:34 2895

原创 Linux 可以打开WIFI 但是看不到无线网络

编辑 /etc/rc.local添加文本#!/bin/sh -e## rc.local## This script is executed at the end of each multiuser runlevel.# Make sure that the script will "exit 0" on success or any other# value on error.#...

2019-08-04 21:09:45 2001

原创 2019 Multi-University Training Contest 4-1003

HDU 6616 Divide the Stones题意: 给一个n和一个k,将重量为[1,n]的石子分成k堆,每堆重量一样。题解: 先将石子分成n/k份,比如15 3,分成1 2 34 5 67 8 910 11 1213 14 15不难看出如果刚好偶数分,每两份组成一个,分配一定是刚好分配合理的,比如上述例子没有13 14 15,肯定是前两组分成 1 6,2 5 3 4 后两组...

2019-07-31 19:45:12 204

原创 后缀数组和高度数组(LCP)学习笔记(有坑)

后缀数组字符串后缀,指从字符串某个位置开始到字符串末尾的字串,原串和空串也是后缀。反之前缀。用sa保存字符串开始的下标。字符串总共有n+1个,字符串比较大小是O(n)O(n)O(n)的,所以直接用sort直接排序是O(n2log(n))O(n^2log(n))O(n2log(n)),很显然不合理。优化一 hash优化把字符串hash处理,修改sort排序方式,比较两个字符串,先二分最长前...

2019-07-30 22:20:14 703 2

原创 2019 Multi-University Training Contest 1 1001 Blank

HDU 6578 Blank题意: 给定1,N 的位置,每个位置可以填1,2,3,4其中一个,给m个区间[l,r] x ,限制[l,r]区间内只有x种不同的数。题解: n非常小,只有100,可以直接用数组枚举上一个数出现的位置,每个位置暴力填就行了。直接O(n4)O(n^4)O(n4)会T,。,必须要削常数。可以发现出现是什么数本身不重要,只和位置有关。然后最大的那个位置,一定是你要填的这个p...

2019-07-27 20:28:15 117

空空如也

空空如也

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

TA关注的人

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