曾任职于阿里巴巴,现就职于美图,专业搬砖100年~
暂时未有相关通用技术能力~
阿里云技能认证
详细说明1 模块导入原理 1 模块是包含函数,类,变量的独立的Python文件 2 导入系统的模块 比如我在家目录下创建一个m.py的文件,我们导入了许多的系统模块,比如time,string等等。
1 源代码形式 1 绝大多数的开源软件都是直接以源代码的形式发布 2 源代码一般会被打包成tar.gz的归档压缩文件 3 程序的源代码需要编译成为二进制形式之后才能够运行使用 4 源代码的基本编译流程为: 1 .
1 系统启动的流程 BIOS -> MBR+boot code -> 执行引导程序: GRUB -> 加载内核 -> 执行init -> 运行runlevel 2 启动详解 1 BIOS 1 BI...
点击打开poj 2828 思路: 树状数组/线段树单点更新 分析: 1 题目给定n个人的位置pos和id,要我们求出最后n个人的位置 2 我们先来考虑朴素的算法,假设现在进来一个人那么我们把它放到pos的位置,那么pos之后的所有的人都要向后移动一位,那么n个人的话最坏的情况是O(n^2),很显然时间效率上面是不行的 3 由于正向的插入不行,那么我们考虑反向插入的情况(就像逆向的并查集),那么我们可以马上知道第n个人的位置,那么第n-1个人的位置是基于第n个人的。
1 文件浏览(简单回顾) 1 cat 查看文件的内容 2 more 以翻页的形式查看,但是只能向下翻页 3 less 以翻页的形式查看,但是能够支持向上和向下翻页 4 head 默认是查看前1...
引导语: 人们学习Python是因为他们爱这门语言,因为他们追寻美,如果我雇用一个Python程序员,那么他们的技术将非常的棒 1 Python是一门跨平台的语言,是一种面向对象的动态编程语言 发布时间: 1991 ...
1 管道和重定向 1 在Linux中大多数命令都很简单,很少出现复杂的命令,每个命令只是实现一个简单的功能,我们可以通过组合不同的命令来实现复杂的功能 2 在Linux中几乎所有的命令返回的数据都是纯文本,而纯文本形式的...
点击打开hdu 1394 思路: 线段树+单点更新 分析: 1 题目要求的是n个数的n个序列中找到的最小逆序数对 2 首先我们都知道所谓的逆序数对就是给一个序列,如果前面的数比当前的数大,那么这两个数就是逆序数对。
【单点更新】 第一题 hdu 1166 敌兵布阵 点击打开链接hdu 1166 思路: 线段树单点更新 分析: 1 题目给定n个兵营的人数,现在有三种操作 (1) Add i j,i和j为正整数,表示第i个营地增加j个人(j不超过30) (2)Sub i j ,i和j为正整数,表示第i个营地减少j个人(j不超过30); (3)Query i j ,i和j为正整数,i y 并且有x'和y‘尽量的小 2 题目给定的数据是n是2*10^5,但是点的最大值为10^9,所以我们应该要进行点的离散化。
1 IP编址 1 IP编址是一个双层的编址方案,一个IP编址标识一个主机(或一个网卡接口) 2 现在应用最为广泛的是ipv4,已经开始逐步香ipv6切换 3 ipv4地址为32位,ipv6为128位 ...
点击打开poj 3735 思路: 矩阵快速幂 分析: 1 题目给定n只猫,每只猫的初始的花生的数量为0。现在有三种操作,g i 第i只猫加一个花生,e i 把第i只猫的所有花生全部吃完 s i j 把第i 和 j只猫的花生数进行交换 2 根据上面的三种操作那么我们能够举例n = 3的时候的三种操作。
点击打开poj 3150 思路: 矩阵快速幂 分析: 1 题目给定n个数每个数在0~m-1之内,题目规定两个数之间的距离为min(|i-j| , n-|i-j|)。
点击打开hdu 3658 思路: 递推+矩阵快速幂 分析: 1 题目的意思是在52个英文字母里面选择m个字母组成一个字符串,满足以下两个条件。
1 默认权限 1 每一个终端都有一个umask权限来确定新建文件和新建文件夹的默认权限 2 umask使用数字权限来表示,比如022 3 目录的默认权限是777-umask,文件的默认权限是666-um...
点击打开hdu 2855 思路: 递推+矩阵快速幂 分析: 1 题目的意思是给定n和m,要求 2 这一题有两种思路,对于这种的题肯定是有递推式的,那么找不到递推式的时候我们尝试去打表 下面我打出了前几十项,发现了n >=...
点击打开uva12470 思路: 矩阵快速幂 分析: 1 裸题 代码: /************************************************ * By: chenguolin ...
点击打开hdu 4291 思路: 循环节+矩阵快速幂 分析: 1 题目给定g(n) = 3*g(n-1)+g(n-2) , g(1) = 1 , g(0) = 0 , 要求g(g(g(n)))%10^9+7 2 最初的想法是从里面一层一层的求出g(n),每一次都利用矩阵快速幂。
点击打开FZU 1692 思路: 构造矩阵+矩阵快速幂 分析: 1 题目的意思是有n个人构成一个圈,每个人初始的有ai个苹果,现在做m次的游戏,每一次游戏过后第i个人能够增加R*A(i+n-1)%n+L*A(i+1)%n 个苹果(题目有错)...
1 权限 1 权限是操作系统用来限制对资源的访问的机制,权限一般分为三种,读,写,执行。操作系统中每一个文件都有特定的权限,所属的用户和所属的组,通过的这样的机制来限制哪些用户,哪些组可以对特定的文件进行什么样的操作 ...
点击打开light oj 1132 思路: 构造矩阵+矩阵快速幂 分析: 1 题目给定n和k要求(1K + 2K + 3K+ ... + NK) % 232 2 具体的思路见下图 3 对于求组合数,我们可以利用公式C(n , ...
点击打开uva 10870 思路:构造矩阵+矩阵快速幂 分析: 1 题目给定f(n)的表达式 f(n) = a1 f(n - 1) + a2 f(n - 2) + a3 f(n -3) + .
点击打开hdu 4565 思路: 递推+矩阵快速幂 分析: 1 这一题和hdu 2256 几乎就是一模一样的题目,只是这边要求的是向上取整 那么我们按照hdu2256的思路来做即可点击打开hdu 2256 代码: ...
点击打开poj 3233 思路: 二分求和+矩阵快速幂 分析: 1 题目给定一个n*n的矩阵A,要求(A+A^2+....A^K)%m后的矩阵 2 对于任意的A^x,我们都能够利用矩阵快速幂求出,但是我们现在要求的是和。
点击打开UESTC 1335 思路: 矩阵快速幂 分析: 1 最简单的矩阵快速幂 代码: /************************************************ * By: chenguolin ...
1 用户和组 1 当我们使用Linux的时候我们都需要以用户的身份登录,一个进程也需要用户的身份运行 2 我们使用用户的目的就是为了限制使用者或者进程哪些资源可以使用或者不可以使用 3 组的相关信息 ...
点击打开hdu 3306 思路: 矩阵快速幂 分析: 1 题目给定另外一种递推式,A(0) = 1 , A(1) = 1 , A(N) = X * A(N - 1) + Y * A(N - 2) (N >= 2).
点击打开FZU1683 思路: 矩阵快速幂 分析: 1 题目给定f(n) = 3*f(n-1)+2*f(n-2)+7*f(n-3) , f(0) = 1 , f(1) = 3 , f(2) = 5 ,给定n求f(0)+.
1 挂载操作 1 磁盘或者分区需要创建好文件系统后,需要挂载到一个目录才能够使用 2 windows或者是Mac会自动的挂载文件系统,一旦创建好文件系统后会自动的挂载 3 对于Linux来说我们必须要手动的去挂...
点击打开zoj 3690 思路: 递推+矩阵快速幂 分析; 1 题目的意思是有n个人和m个数和一个k,现在每个人可以选择一个数,但是要求如果相邻的两个人选择相同的数,那么这个数要大于k 2 假设F(n)表示前n个人第n个人选择的数大于k的...
点击打开hdu 4686 思路: 矩阵快速幂 分析: 1 题目给定一个式子求和,那么根据题目给定的,我们可以求出an*bn = (an-1*Ax+Ay)*(bn-1*Bx+By) => an-1*bn-1*Ax*Bx+an-1*Ax*By+bn-1*Ay*Bx+Ay*By 2 那么我们根据上面的等式可以推出矩阵的乘法 3 那么我们要求的是AoD(n)相当于求左边矩阵的n次幂,然后利用结果乘上初始值 4 注意特判n为0的时候,结果为0。
1 文件系统 1 操作系统通过文件系统来管理文件及数据,磁盘或分区需要创建文件系统之后才能为操作系统使用,创建文件系统的过程称为格式化 2 没有文件系统的设备称为裸设备 3 常见的文件系统有fat32 , NF...
第一题 hdu 1757 A Simple Math Problem 点击打开链接 思路:矩阵快速幂 分析: 1 最简单的矩阵快速幂的题目,直接利用矩阵求解即可 点击打开查看代码 第二题 hdu 1575 Tr A ...
点击打开hdu 2276 思路: 矩阵快速幂 分析: 1 题目给定一个01字符串然后进行m次的变换,变换的规则是:如果当前位置i的左边是1(题目说了是个圆,下标为0的左边是n-1),那么i就要改变状态0->1 , 1->0 比如当前...
点击打开hdu 2254 思路: 矩阵乘法 分析: 1 题目给定一个有向图,要求t1-t2天内v1-v2的路径的个数 2 假设有向图的邻接矩阵为A,那么A表示的是有向图中走一步能够到达哪些点的方案数,那么A^n表示的是走n步能够到达哪些点的方案数 3 根据离散数学里面的可达矩阵的性质,我们知道一个有向图的邻接矩阵的前n次幂的和即为可达矩阵,那么要求[t1-t2]之内的路径的条数,因为题目说了t1 = 0的时候为0。
点击打开hdu2842 思路: 矩阵快速幂 分析: 1 题目的意思是给定n个环,和一些规则要把所有的环全部拆下最少需要的步数 2 题目规定如果要拆第n个环,那么第n-1个要挂着,n-2环要被拆下。
点击打开hdu 3117 思路: 矩阵快速幂 分析: 1 题目要求的是求F(n)中如果位数的个数大于8那么要输出前4四位和后四位,没有到8位的时候直接输出 2 根据题目的样例我们可以知道当n = 40的时候就超过8位了,所以我们可以知道n...
1 FDISK分区工具 1 fsidk是来自IBM的分区工具,支持绝大多数的操作系统,几乎所有的Linux都装有fdisk 2 fdisk是一个支持MBR的分区工具,如果要使用GPT的话我们无法使用fdisk进行分区 3 fidsk是只有具有超级用户的命令才能使用,比如su 或者sudo 4 使用fdisk -l能够列出所有安装的磁盘及其分区信息,这里面我插入了U盘做测试也就是图中的sdb4 5 使用fdisk /dev/sd[a~z]可以对目标目录进行分区。
点击打开cf 185A 思路: 递推+矩阵快速幂 分析: 1 题目要求找到在n年后向上三角形的个数 2 写出前面的几个数F(0) = 1 , F(1) = 3 , F(2) = 10 , F(3) = 36 , F(4) = 136 ...
点击打开hdu 2604 思路: 递推+矩阵快速幂 分析; 1 根据题目的意思,我们可以求出F[0] = 0 , F[1] = 2 , F[2] = 4 , F[3] = 6 , F[4] = 9 , F[5] = 15 2 那么根据上面...
点击打开hdu 2256 思路: 矩阵快速幂 分析: 1 题目要求的是(sqrt(2)+sqrt(3))^2n %1024向下取整的值 3 这里很多人会直接认为结果等于(an+bn*sqrt(6))%1024,但是这种结果...
1 磁盘的基本概念 1 Track(轨道), Cylinder(柱面), Sector(扇区), Head(磁头) 2 磁盘在Linux系统中的表示 1 ...
点击打开hdu 2688 思路: 树状数组 分析: 1 题目给定n个数求满足 i < j并且 F[i] < F[j]的个数 2 首先我们可以利用树状数组求出起始序列满足条件的个数sum。
点击打开hdu 2838 思路: 树状数组 分析: 1 题目和求逆序数那题很像,裸题 代码: /************************************************ * By: chenguolin...
点击打开hdu 3584 思路: 三维树状数组 分析: 1 点击打开查看论文 建议先看看这篇论文,然后就懂了,裸的三维树状数组 代码: /******************************************...
点击打开hdu 2642 思路: 二维树状数组 分析: 裸题 代码: /************************************************ * By: chenguolin ...
点击打开hdu 1892 思路: 二维树状数组 分析: 1 题目给定4种操作: S x1 y1 x2 y2 询问以(x1 , y1) - (x2 , y2)为对角线的矩形的面积,但是这个对角线不一定是正对角线。
1 日期时间 1 通过date查看当前系统的时间 date 2 格式化显示时间 date +%Y--%m--%d,中间的连接符号可以是任意的 3 设置系统的时...
点击打开hdu 1556 思路; 树状数组 分析: 1 简单的区间更新,单点查询问题 代码: /*********************************************** * By: chenguolin ...
点击打开hdu 2852 思路: 树状数组 分析: 1 题目给定三种操作: 0 x 表示把x插入容器 ; 1 x 表示删除一个x如果没有x则输出 No Elment! ; 2 a k 表示比a大的数中的第k大的数 如果没有输出No Find! 2 我们先来看一下树状数组的功能,树状数组能够在在logN的时间内求出某段区间的和,那么对于2 a k这种操作我们可以看成是求是否有x满足[a,x]这个区间的和为k,那么这样就变成了树状数组的求和问题了。
点击打开SPOJ227 思路: 树状数组 分析: 1 给定一个n个数的序列假设为b数组,那么b[i]表示的是i之前比第i个数大的个数,比如样例的2 1 3对应的b数组是0 1 0,现在要求a数组,已知a数组的值是1~n 2 我们通...