自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Pipe(管道)的一些理解

Pipe(管道)的一些理解管道的概念管道是操作系统中常见的一种进程间通信方式,它使用于所有POSIX系统以及Windows系列产品。管道也是unix ipc的最老形式,管道有两种限制:数据自己读不能自己写它们是半双工的。数据只能在一个方向上流动。数据一旦被读走,便不在管道中存在,不可反复读取。它们只能在具有公共祖先的进程之间使用。通常,一个管道由一个进程创建,然后该进程调用fork...

2019-10-26 22:53:48 5766 1

翻译 用Rust写操作系统(2)最小Rust内核

最小Rust内核原文 https://os.phil-opp.com/minimal-rust-kernel/原作者 phil-opp译者 readlnh翻译项目地址 https://github.com/readlnh/Writing-an-OS-in-Rust-Second-Edition-zh_CN在这篇文章里我们将在x86架构上创建一个最小的64位Rust内核。我们将在上一篇...

2019-05-20 08:59:22 3730 3

原创 如何用rust为redis写一个client

如何用rust为redis写一个client最近nosql变得非常流行,redis作为其中的佼佼者,基本也是大部分程序员必备的技能了。我们知道,redis是一个key-value数据库,它运行在内存中但是可以持久化到内存。我们一般很熟悉redis的那些基本命令,但是如何使用某种语言来操作redis呢?那些常用的语言一般都有相应的驱动,但是像rust这样的新语言呢?Redis Protocol...

2019-05-13 15:17:31 1675 1

转载 web基础笔记

web基础原文 https://astaxie.gitbooks.io/build-web-application-with-golang/content/zh/03.1.html浏览器上网过程浏览器本身是一个客户端,当你输入URL时,首先浏览器会去请求DNS服务器,通过DNS获取相应的域名对应的ip,然后通过ip找到ip对应的服务器后,要求建立TCP连接,等浏览器发送完HTTP Req...

2019-04-19 17:25:49 189

原创 如何在docker中运行ubuntukylin桌面系统

如何在docker中运行ubuntukylin桌面系统背景由于要和开源社合办一个活动,要求线上线下同时进行,需要使用对方的云平台,本来以为只需要提供iso镜像就行了,没想到对方只支持docker镜像。虽然之前用过docker,但是完全没想过docker里跑桌面。思路调研和已有开源项目说实话,由于没怎么接触过docker,所以花了一上午时间看了下docker实践教程,但是对如何运行桌面还是没...

2019-04-19 15:35:32 4730

原创 聊一聊linux中的cgroup

聊一聊linux中的cgroup最近由于工作原因接触了docker,也就研究一下它的原理,主要看了阿里出的<<自己动手写docker>>,感觉蛮有意思,姑且记录一下。docker可以算是当前非常火热的技术了。我们知道docker基于Namespce和Cgroups,其中Namespace主要用于隔离资源Cgroups用来提供对一组进程以及将来子进程的资源限制Cg...

2019-04-19 15:34:42 183

原创 linux namespce机制初探

docker技术分析 - linux namespce机制docker技术是近年来无比火热的技术,不管是哪个领域大家都在研究和使用docker。我们在使用docker的时候经常听人说,docker是基于linux内核的Namespace和Cgroup技术实现的。那么究竟什么是Namespace技术呢?linux namespcelinux的namespce机制提供了一种资源隔离方案,它是L...

2019-04-19 15:34:02 156

原创 聊一聊linux中的cgroup

聊一聊linux中的cgroup最近由于工作原因接触了docker,也就研究一下它的原理,主要看了阿里出的<<自己动手写docker>>,感觉蛮有意思,姑且记录一下。docker可以算是当前非常火热的技术了。我们知道docker基于Namespce和Cgroups,其中Namespace主要用于隔离资源Cgroups用来提供对一组进程以及将来子进程的资源限制Cg...

2019-04-03 19:35:39 426

翻译 用Rust写操作系统(1)一个独立的rust二进制程序

一个独立的rust二进制程序原文 https://os.phil-opp.com/freestanding-rust-binary/原作者 phil-opp译者 readlnh创建一个不依赖于标准库的rust可执行文件是我们创建属于自己的操作系统内核的第一步。这将使得在不依赖于底层操作系统的情况下在裸机bare metal 上运行一个rust程序成为可能。这个系列的blog在Git...

2019-03-29 18:43:14 3453

原创 装wps

sudo dpkg --add-architecture i386

2019-03-11 13:41:10 128

原创 rust的一个语法糖:trait bound

rust的一个语法糖:trait bound我们知道rust是没有继承这个机制的,rust的多态是通过trait来实现的。官方的教程里是这么介绍的trait 告诉 Rust 编译器某个特定类型拥有可能与其他类型共享的功能。可以通过 trait 以一种抽象的方式定义共享的行为。可以使用 trait bounds 指定泛型是任何拥有特定行为的类型。从某种程度上来说,trait就是一种可供多...

2019-02-14 15:29:54 3698 1

原创 rust为什么需要生命周期注解

rust为什么需要生命周期注解我们知道,rust是通过生命周期等一系列机制来对内存进行管理的。rust中每一个引用都有其生命周期,也就是保持有效的作用域。通常来讲,生命周期都是可推断的,在rust的编译器里有一个借用检查器,它通过比较作用域来保证所有借用都是有效的。举例来说:fn main() { let a = 10; let b = &amp;a; ...

2019-02-02 19:47:02 3139 1

原创 谈谈rust的Option枚举和空指针

谈谈rust的Option枚举和空指针由于之前工作一直都在用c/c++,最近在学rust的时候发现rust里面没有空值(null),而是采用了一个Option枚举,感觉非常有意思。空值(Null )是一个值,它代表没有值。在有空值的语言中,变量总是这两种状态之一:空值和非空值。这句话有点绕。实际上用过c++的同学们应该知道c++内的NULL的值是0,例如int *ptr = NULL,这...

2019-01-23 17:04:55 10330 3

原创 聊一聊Rust的结构体

聊一聊Rust的结构体因为最近在接触rust语言,所以随便记录下学习过程中遇到的一些有意思的点。实际上结构体在很多语言中都存在。rust的结构体和c/c++语言的结构体其实也是非常类似的。假如我们要定义一个存储帐号信息的结构体struct User { username: String, email: String, sign_in_count: u64, ac...

2019-01-18 11:44:48 6188

原创 关于c语言面向对象继承的一些杂谈

关于c语言面向对象继承的一些杂谈我们知道面向对象和语言无关,c语言也能实现面向对象。在工作中我经常接触gtk+的代码,而gtk+正好是用c语言实现的面向对象的库。再加上之前研究安卓内核时,hal层的代码以及linux内核代码,算是对c语言实现面向对象有了一定的了解。但是有一点当时我一直没有搞明白,很多资料里都说在设计C语言继承性的时候, 我们需要做的就是把基础数据放在继承的结构的首位置即...

2019-01-10 19:37:06 176

原创 python杂记

python杂记python面向对象之类变量与对象变量类变量(Class Variable)是共享的(Shared)——它们可以被属于该类的所有实例访问。该类变量只拥有一个副本,当任何一个对象对类变量作出改变时,发生的变动将在其它所有实例中都会得到体现。对象变量(Object variable)由类的每一个独立的对象或实例所拥有。在这种情况下,每个对象都拥有属于它自己的字段的副本,也就是说...

2018-10-08 15:18:41 123

原创 Android智能指针

Android智能指针Android和gecko底层都是由c++来实现的,而c++最头痛的就是内存泄漏问题了,常见的c++项目中的指针问题基本上有以下几种:指针没有初始化new了对象后没有及时delete野指针智能指针需要做什么智能指针就是用来解决上面的这些问题的。首先智能指针必须解决初始化问题,这个问题比较简单,只要让指针在创建的时候设置值为null即可(比如,...

2018-09-25 20:16:23 282

原创 opengl glut笔记

前言一直以来都很迷掌机,小时候也玩过好多模拟器,一直有心写一个模拟器,最近在网上找到了很久远以前的资料,借助cmake把代码移植到了ubuntu上,不过在解读代码的时候发现其中用到了glut.h这个头文件,决定单独把它抽出来学习一下。Initialization(初始化)

2016-12-10 14:45:07 334

原创 HDU 5876 Sparse Graph(补图的最短路)

题意给出一个图,和一个起点,求在该图的补图中从起点到其他N-1个点的最短距离。如果不连通输出-1.思路用set将未走过的点放置进去,并在对点的邻边进行扩展的时候,把能走到的邻点删除掉(即补图中可以走到的邻点保留)代码#include <cstdio>#include <iostream>#include <cstring>#include <queue>#include <vector>#

2016-10-13 12:49:26 247

原创 poj1274 The Perfect Stall(二分图匹配)

题意有n个奶牛和m个谷仓,现在每个奶牛有自己喜欢去的谷仓,并且它们只会去自己喜欢的谷仓吃东西,问最多有多少奶牛能够吃到东西。 输入第一行给出n与m 接着n行 每行第一个数代表这个奶牛喜欢的谷仓的个数s,后面接着s个数代表这个奶牛喜欢哪个谷仓思路典型的二分图匹配,n头牛和m个谷仓都抽象成点,如果某头牛喜欢某个谷仓的话就连一条边,然后求二分匹配。思维上没什么特殊的地方,这里实现上我用的是匈牙利算法

2016-10-08 18:58:23 372

原创 Codeforces Round #375 (Div. 2)

概述这场的题其实都挺水。。。但是还是只做了4题。。。前面就卡题,确实自己想问题还是不够严谨。。。A. The New Year: Meeting Friends题意数轴上有三个点,问在哪个位置这三个点到它的距离之和最小。。。思路这题数据范围很小,才100,当时想都没想就直接暴力了。。。。。其实这题数据完全可以很大很大。。。。这题仔细想想应该会明白,就是最大的减最小的。。。。代码我的sb暴力。。#in

2016-10-07 02:47:20 511

原创 HDU1796 How many integers can you find(容斥)

题意给定a1,a2…am,求小于n的正整数至少能整除a中一个元素的数有几个?思路求[1,r)内有因子出现在集合中的数的个数。题目要求的数要么含有一个集合中的因子,要么是两个,要么是三个..要么是m个,而含两个集合中因子的数在计算含有一个集合中的因子,被重复计算了,三个时候也在计算二个的时候被重复计算,所以需要用到容斥原理。2^m枚举集合中元素,然后计算出最小公倍数,n/LCM就是1..n中含我们枚举

2016-10-03 19:20:08 356

原创 HDU5900 QSC and Master(区间dp)

题意有一个序列,每个元素都有一个键值key,和一个价值value。假如其中相邻的两个元素的键值的最大公约数不为1(不互质),可以把这两个元素从序列中取走,并或得这两个元素价值的分数,可以一直取,问最大能或得多少分数。思路这是一道典型的区间dp,然而比赛的时候跟本没什么想法。。用dp[i][j]来表示区间[i,j]能获得的最大值。实际上对于区间[i,j]只有几种可能,首先对于一个大区间,我们很容易想到

2016-09-28 01:35:32 206

原创 HDU2045不容易系列之(3)—— LELE的RPG难题

题意有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂法.思路典型的递推,一开始居然没想出来。。 设有n个方格的情况为f(n)f(n),已经涂好了n-2个方格,这时要涂第n-1个格子,有两种情况: 1.颜色和第一个格子不同 2.颜色和第一个格子相同 第一种情况下,最后一个格子的

2016-09-28 01:03:22 269

原创 poj3169Layout(差分约束)

题意有n头牛,编号是1~n,他们按编号顺序排成一排,这些牛之间有关系好的和关系坏的,关系好的ml对牛,给出他们之间的距离的最大值,关系差的md对牛,给出他们之间距离的最小值。牛可以站在同一个位置上。在满足这些条件的情况下,求编号为1的牛和n的牛距离的最大值。思路假如第i头牛的位置为dist[i],那么必定有dist[i] <= dist[i + 1],然后有最大距离限制,dist[a[i]] + d

2016-09-08 19:07:14 236

原创 差分约束系统

差分约束如果一个系统由n个变量和m个约束条件组成,形成m个形如ai-aj≤k的不等式(i,j∈[1,n],k为常数),则称其为差分约束系统(system of difference constraints)。亦即,差分约束系统是求解关于一组变量的特殊不等式组的方法。笔记在学习最短路的时候遇到了一道问题要用差分约束系统来解决,就单独学习了一下。差分约束系统可以转化成最短路问题,非常巧妙。 其实差分约

2016-09-03 16:23:14 289

原创 poj3723 Conscription(最小生成树)

题意要征募n个男兵,m个女兵,每招一个人要10000块钱,现在有一些男兵和女兵有某种关系,导致同时招募他们可以节省一定的钱,给出男女兵的关系,求招募最少要花多少钱。思路其实很简单,选的人里面含有的关系能省的钱要最大,把男女关系连起来形成一个图,就是求这个图的最大生成树。我们猜测最大生成树算法可以类比最小生成树的贪心算法(确实是对的)。不过我们这里可以换个思路,把权值全改成负数,那这样求最小生成树得到

2016-09-01 22:37:48 408

原创 poj2431Expedition(贪心,优先队列)

题意有一辆车,要开l的路,它每开一单位的路要消耗一单位的油。车里原来有p的油,车的油箱容量是无限大的。现在路上不同位置有一些加油站,这些加油站里有一定量的油,问开到终点最少要加几次油。思路我们肯定尽量加多一点的油,那么我们这样考虑,假如我经过一个加油站,我就获得了加这个站的油的权利,那么我可以一直走,一直走到没油,这时候取出我前面能加的油里面最多的那个加上继续走代码#include <cstdio>

2016-08-18 20:59:25 2664

原创 poj3253Fence Repair(贪心,哈夫曼编码)

题意有一块木板,要把它切成长度指定的n块 ,每次切断时需要付出这块木板长度的代价,问最少要付出多少代价思路这题切割可以用二叉树表示出来,这样很显然能看出切的次数越多,在树中的深度越深。切的次数越多,显然被计数的(即付出代价)次数越多,那么显然越深的地方木板长度应该越小,以此来构建二叉树。即每次取出最小的两个作为叶子节点。#include <cstdio>#include <iostream>#i

2016-08-18 10:14:42 437

原创 poj3069Saruman's Army(贪心)

题意直线上有一些点。现在能给一部分点加buff,加了buff的点能影响到周围r的范围内的点。问最少要给多少点加buff才能影响到所有的点思路典型的贪心,每次尽量找能影响到当前的最靠右的点来加buff,加完之后继续从加了buff的那个点影响范围之外的第一个点开始继续找代码#include <cstdio>#include <iostream>#include <cstring>#include

2016-08-18 00:52:40 424

原创 poj3617Best Cow Line(贪心)

题意给定长度为n的串s,要构造一个长度为n的新串t,求字典序最小的t。每次操作可以把s的头或者尾那个字符加到t的尾部,t一开始是空字符串。思路很明显的贪心,要使字典序最小,明显每次添加的字符要尽量小。不过,这样子还存在一个问题。比如s为:abbca,这种情况下,显然要把s的首位置那个a加入t才能使字典序最小,所以遇到头尾相同的情况需要看看后面位置的字符大小情况。还有一点,这题80个字符一行输出,看题

2016-08-17 20:39:33 244

原创 poj 1852 Ants

题意n只蚂蚁在长度为n的竹竿上以每秒1厘米的速度爬来爬去,爬到竿子端点时就会掉下去。两只蚂蚁相遇它们就会同时掉头(因为竿子很细),问所有蚂蚁都掉下去的最大时间和最小时间。思路这题虽然说是简单题,但是我还是没想到,感觉并不好想,虽然说穿了很简单(大概是我太菜)最短时间很显然,只要所有蚂蚁都往离自己当前位置近的端点爬就行,这样显然不会有蚂蚁相遇。考虑一下两只蚂蚁相遇的情况,虽然两只蚂蚁都掉头了,实际上和

2016-08-17 18:41:04 270

原创 hdu1520 Anniversary party(树形dp基础题)

题意有一群人参加聚会,每个人有个快乐值,但是假如这个人遇到他的直接上司,他就不开心了(废话),问所有人的快乐值之和最大是多少思路这是一道树形dp入门题,其实dp本身很简单,但是我对树形结构有一种莫名的恐惧。。。dp数组dp[i][0]表示i不放,dp[i][1]表示i放的情况下能达到的最大值,那么dp[u][0] += max(dp[v][0],dp[v][1]),这里当u不放时,那么他的下属放不放

2016-08-17 01:26:12 384

原创 多校赛第八场

hdu 5821题意 给定一列球,每种球有一个颜色,同一颜色的球无区别 每次选择一个区间,任意排列其中的球 问是否能从初始的排列变成给定的一个排列思路 这题其实很水,就是一个简单的排序。。。比赛期间其实想到排序 ,然而当时感觉把多余的往后排就好。。然而。。。其实这题因为操作是有顺序的,每次操作都要把位置定下来。而且,很重要的一点,颜色一样的都是没区别的。所以同样颜色的在前

2016-08-12 11:41:34 332

原创 多校赛第七场

1005 Problem Description Mr. Chopsticks is interested in random phenomena, and he conducts an experiment to study randomness. In the experiment, he throws n balls into m boxes in such a manner tha

2016-08-10 20:45:46 288

转载 多校赛第五场

今天在体检,没能和队友一起了,之后的多校赛都要单刷了,天朝奇怪的征兵政策,我测完视力,一群人盯着我看。。。老子是写轮眼不行吗,右眼用多了万花筒,视力下降了。吐槽就到这里了hdu 5791Problem Description Alice gets two sequences A and B. A easy problem comes. How many pair of sequence A’ a

2016-08-02 21:03:50 220

原创 挑战2.3 记录结果再利用的“动态规划”

基础的动态规划算法poj3176 Cow Bowing 没什么好说的,就是数塔问题,从最后一层往上扫,f[i][j] = max(f[i + 1][j], f[i + 1][j + 1]) + a[i][j],当前状态只取决于底下两个的状态poj2229 Sumset 求一个数分解成2的幂次之和有多少种情况。 这个问题还是需要想一想的,首先,我们应该意识到了,假如一个数是奇数,那么拆

2016-07-24 11:19:13 331

原创 2016第一场多校赛

题目Problem Description An abandoned country has n(n≤100000) villages which are numbered from 1 to n. Since abandoned for a long time, the roads need to be re-built. There are m(m≤1000000) roads to be

2016-07-20 17:58:44 441

转载 c++流读入

Preface在ACM竞赛中读取一整行数据时一般会给出这一行数据的个数,以便选手用循环读入。但有的时候题目并没有给出数据的个数,这就需要选手自己处理了,比如这道题。为此,我写了一个能读取整行数据的函数,函数原型如下:template<typename T>int ReadLine(T* array);其中:array为要存放数据的数组指针函数的返回值为读取的数据的个数,没有读到数据返回0注意

2016-07-14 18:06:29 570

转载 需要学习的博客

快速幂及矩阵快速幂 http://blog.csdn.net/y990041769/article/details/22311889

2016-05-25 21:24:06 245

在keil中添加STC型号

在keil中添加STC型号的几种方法,适用于1,2,3,4

2014-11-06

空空如也

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

TA关注的人

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