02 2016 档案

摘要:★PART1:32位保护模式下内核简易模型 1. 内核的结构,功能和加载 每个内核的主引导程序都会有所不同,因为内核都会有不同的结构。有时候主引导程序的一些段和内核段是可以共用的(事实上加载完内核以后就不需要主引导程序了),和加载一般的用户程序一样,主引导程序也是需要从硬盘中读取程序到指定的内存空间 阅读全文
posted @ 2016-02-29 10:41 PhiliAI 阅读(1335) 评论(0) 推荐(0)
摘要:12章其实是11章的拓展,代码基本不变,就是在保护模式下展开讨论。 ★PART1:存储器的保护机制 1. 修改段寄存器的保护 当执行把段选择子传到段寄存器的选择器部分的时候,处理器固件在完成传送之前,要检查和确认选择子是正确的,并且该选择子选择的描述符也是正确的。假如索引号是正确的,也就是说明索引号 阅读全文
posted @ 2016-02-25 20:38 PhiliAI 阅读(1004) 评论(0) 推荐(0)
摘要:★PART1:进入保护模式 1. 全局描述符表(Global Descriptor Table,GDT) 32位保护模式下,如果要使用一个段,必须先登记,登记的信息包括段的起始地址,段的界限和各种访问属性,如果偏移地址超过了段的界限,就会引发异常中断。和一个段有关的信息需要8个字节来描述,这被称为段 阅读全文
posted @ 2016-02-23 21:11 PhiliAI 阅读(4250) 评论(2) 推荐(0)
摘要:★PART1:32位的x86处理器执行方式和架构 1. 寄存器的拓展(IA-32) 从80386开始,处理器内的寄存器从16位拓展到32位,命名其实就是在前面加上e(Extend)就好了,8个通用寄存器被命名为EAX,EBX,ECX,EDX,ESI,EDI,ESP和EBP,同样的,操作的时候必须要和 阅读全文
posted @ 2016-02-20 22:31 PhiliAI 阅读(1057) 评论(0) 推荐(0)
摘要:第八章是一个非常重要的章节,讲述的是实模式下对硬件的访问(这一节主要讲的是硬盘),还有用户程序重定位的问题。现在整理出来刚好能和保护模式下的用户程序定位作一个对比。 ★PART1:用户程序的重定位,硬盘的访问 1. 分段、段的汇编地址和段内汇编地址 NASM编译器使用汇编指令“SECTION”或者“ 阅读全文
posted @ 2016-02-19 19:44 PhiliAI 阅读(2139) 评论(0) 推荐(0)
摘要:第5-7章感觉是这一本书中比较奇怪的章节,可能是作者考虑到读者人群水平的差异,故意由浅入深地讲如何在屏幕上显示字符和使用mov,jmp指令等等,但是这样讲的东西有点重复,而且看了第六,第七章以后,感觉第5章的做法真是太笨了。 本来觉得,显卡与显存应该是放到1-4章的笔记来记录才对,可是这样一来这个5 阅读全文
posted @ 2016-02-18 23:50 PhiliAI 阅读(1463) 评论(0) 推荐(0)
摘要:其实很久之前就学完了实模式了,但是一直没有总结,感觉现在直接在书上做笔记的弊端就是有些知识点不能很很深刻地记下来(毕竟手写最明显的优点就是能深刻地记住知识,但是就是用太多的时间罢了)。一下内容都是一些这本书里面的知识和笔记。 ★PART1:进制计数: 1. 二进制到十进制的相互转换(带权乘法) a. 阅读全文
posted @ 2016-02-17 23:33 PhiliAI 阅读(1243) 评论(1) 推荐(1)
摘要:涂颜料 题目大意:在一个1000000*1000000的矩阵中放入几块木板,问你这些木板把矩阵划分成了几个区域?输入会给左下角和右上角的坐标,输入W==0且H==0结束。 这一题是书上的作业题,书上有一道差不多的例题,但是书上那道例题是用的直线的,而且他的坐标是点格,而这道题是坐标(这个很重要,我一 阅读全文
posted @ 2016-02-17 17:12 PhiliAI 阅读(480) 评论(0) 推荐(0)
摘要:基因修复 题目大意:给定一些坏串,再给你一个字符串,要你修复这个字符串(AGTC随便换),使之不含任何坏串,求修复所需要的最小步数。 这一题也是和之前的那个1625的思想是一样的,通过特殊的trie树找到所有的状态然后一个一个枚,具体状态转移的思想可以在1625那里看 当然了这一题不是像1625那样 阅读全文
posted @ 2016-02-15 22:06 PhiliAI 阅读(385) 评论(0) 推荐(0)
摘要:Censored! 题目大意:给定一些字符,将这些字符组成一个固定长度的字符串,但是字符串不能包含一些禁词,问你有多少种组合方式。 这是一道好题,既然出现了“一些”禁词,那么这题肯定和AC自动机有点关系了,对于这一题来说,因为我们需要的是求出在N^M种状态除去包含禁词的状态数,枚举肯定是不现实的了, 阅读全文
posted @ 2016-02-15 02:35 PhiliAI 阅读(398) 评论(0) 推荐(0)
摘要:多模匹配 题目大意:给定很多个字串A,B,C,D,E....,然后再给你目标串str字串,看目标串中出现多少个给定的字串。 经典AC自动机模板题,不多说。 1 #include <iostream> 2 #include <algorithm> 3 #include <functional> 4 # 阅读全文
posted @ 2016-02-09 23:34 PhiliAI 阅读(328) 评论(0) 推荐(0)
摘要:BM算法研究了很久了,说实话BM算法的资料还是比较少的,之前找了个资料看了,还是觉得有点生涩难懂,找了篇更好的和算法更好的,总算是把BM算法搞懂了。 1977年,Robert S.Boyer和J Strother Moore提出了另一种在O(n)时间复杂度内,完成字符串匹配的算法,这个算法在单模匹配 阅读全文
posted @ 2016-02-08 21:40 PhiliAI 阅读(1786) 评论(3) 推荐(1)
摘要:给你一个长度为N的链表。N很大,但你不知道N有多大。你的任务是从这N个元素中随机取出k个元素。你只能遍历这个链表一次。你的算法必须保证取出的元素恰好有k个,且它们是完全随机的(出现概率均等)。 这一题应该可以用来解决微信红包分配之类的那种问题,主要是概率的证明挺有意思。 来源:http://www. 阅读全文
posted @ 2016-02-05 22:49 PhiliAI 阅读(281) 评论(0) 推荐(0)
摘要:奶牛矩阵 题目大意:给定一个矩阵,要你找到一个最小的矩阵,这个矩阵的无限扩充的矩阵包含着原来的矩阵 思路:乍一看这一题确实很那做,因为我们不知道最小矩阵的位置,但是仔细一想,如果我们能把矩阵都放在左上角该多好,这样一来这一题好像又是循环数组那个样子了(二维的)。 而事实上我们确实可以把所有情况都放在 阅读全文
posted @ 2016-02-05 16:33 PhiliAI 阅读(965) 评论(0) 推荐(0)
摘要:串珠子 题目大意:给定一个字串,要你找到如果要使之成为循环串,在末尾需要的最小的字数(只能添加字符,不能删减字符) 首先联动一下之前做过的动态规划问题POJ 3280,当然了3280这一题是用的LD,因为他可以添加或者删除(加上修改也行,但是要改状态方程了) 而我们现在要讨论的这一题(HDU 374 阅读全文
posted @ 2016-02-05 16:05 PhiliAI 阅读(418) 评论(0) 推荐(0)
摘要:KMP算法是由Knuth,Morris,Pratt共同提出的算法,专门用来解决模式串的匹配,无论目标序列和模式串是什么样子的,都可以在线性时间内完成,而且也不会发生退化,是一个非常优秀的算法,时间复杂度的上界是O(n+m)。 那么我们现在就来研究一下KMP算法究竟是个什么东西,我这里就尽量说的简洁一 阅读全文
posted @ 2016-02-04 21:53 PhiliAI 阅读(1008) 评论(0) 推荐(0)
摘要:DNA序列 题目大意:给你m串字符串,要你找最长的相同的连续字串 这题暴力kmp即可,注意要按字典序排序,同时,是len<3才输出no significant commonalities 1 #include <iostream> 2 #include <functional> 3 #include 阅读全文
posted @ 2016-02-04 21:50 PhiliAI 阅读(263) 评论(0) 推荐(0)
摘要:追名逐利 题目大意:给定一个字符串S,要你找到S的所有前缀后缀数组 还是Kmp的Next数组的简单应用,但是这一题有一个BUG,那就是必须输出字符串的长度(不输出就WA),然而事实上对于abcbab,这样输出会是2,6,很明显是错,但是答案还是会判对,吃惊 1 #include <iostream> 阅读全文
posted @ 2016-02-04 17:36 PhiliAI 阅读(362) 评论(0) 推荐(0)
摘要:字符串前缀的阶 题目大意:求前缀的阶 和POJ1961是一样的,KMP的Next数组的应用,不要用STL,不要一个一个读入字符(IO永远是最慢的) 1 #include <iostream> 2 #include <algorithm> 3 #include <functional> 4 #incl 阅读全文
posted @ 2016-02-04 14:47 PhiliAI 阅读(202) 评论(0) 推荐(0)
摘要:Oulipo 题目大意:给你一个字符串,要你找到字符串包含指定子串的个数 只要你知道了KMP,这一题简直不要太简单,注意STL的string是会超时的,还是乖乖用char吧 1 #include <iostream> 2 #include <algorithm> 3 #include <functi 阅读全文
posted @ 2016-02-04 02:08 PhiliAI 阅读(452) 评论(0) 推荐(0)
摘要:Period 题目大意:给定一个字符串,要你找到前缀重复了多少次 思路,就是kmp的next数组的简单应用,不要修正next的距离就好了,直接就可以跳转了 PS:喝了点酒用递归实现除法和取余了。。。结果tle不知道怎么回事。。。 1 #include <iostream> 2 #include <f 阅读全文
posted @ 2016-02-03 23:03 PhiliAI 阅读(403) 评论(0) 推荐(0)
摘要:物理实验 题目大意:有一个与地面垂直的管子,管口与地面相距H,管子里面有很多弹性球,从t=0时,第一个球从管口求开始下落,然后每1s就会又有球从球当前位置开始下落,球碰到地面原速返回,球与球之间相碰会发生完全弹性碰撞(各自方向改变,速率变为相碰时另一个球的速率)问最后所有球的位置? 这一题又是一道弹 阅读全文
posted @ 2016-02-01 17:40 PhiliAI 阅读(652) 评论(0) 推荐(0)
摘要:我发现每次我做二分题目的时候,自己写的upper_bound和lower_bound老是会出错。 而且对于普通的整数二分的时候lb和rb不好控制 虽然有时候可以直接用模板的STL,但是感觉对于某些问题还是不是很方便(主要是对于模板struct不是很支持) 我直接模仿stl写了两个自己用的模板,以后就 阅读全文
posted @ 2016-02-01 13:42 PhiliAI 阅读(323) 评论(0) 推荐(0)
摘要:找四个数的和为0 题目大意:给定四个集合,要你每个集合选4个数字,组成和为0 这题是3977的简单版,只要和是0就可以了 1 #include <iostream> 2 #include <algorithm> 3 #include <functional> 4 #define MAX 4001 5 阅读全文
posted @ 2016-02-01 13:40 PhiliAI 阅读(239) 评论(0) 推荐(0)
摘要:数集 题目大意:给定一些数的集合,要你求出集合中满足a+b+c=d的最大的d(每个数只能用一次) 这题有两种解法, 第一种就是对分,把a+b的和先求出来,然后再枚举d-c,枚举的时候输入按照降序搜索就好,一旦d满足条件就是最大的了,另外判断不重复存一下位置就好,时间复杂度0(n^2*logn) 1 阅读全文
posted @ 2016-02-01 01:57 PhiliAI 阅读(358) 评论(0) 推荐(0)