愉快的国庆结束了,坐在回学校的高铁上码下这篇文章,大概的记录下近几天的一些想法,就想到啥写啥了,琐碎的记录

失齿之痛

这个国庆拔了个智齿,在拔这个牙之前,我只是感觉它和另一颗牙之间有比较大的缝隙,然后它被腐蚀的有点龋了,然后就跑到医院看了看,第一家小医院就建议我拔了。。。有点接受不了,去了另外一家大口腔医院看了看,发现我的四个智齿有两个是阻生,,,所以人家也建议拔了,,,还建议直接拔四颗。

考虑了半天,还是先拔一颗比较坏的,左下颌的智齿。

在知道要把这玩意拔掉之后,我还没有意识到问题的严重性。。。

拔牙这天我心慌慌的坐在候诊室等着处刑,越接近拔牙时刻心跳速度愈发的快,打完麻药之后医生直接把我脸给盖上了,之路出嘴周围的一圈。我只感觉她在我嘴里一顿操作,还听见医生在聊哪个主任开着路虎,人长得又帅,想多看几遍。我TM。。。

阅读全文 »

先写不开心的事——抠出一万套海景房的尬聊

今天在地铁上可真是把我尬的受不了了,我本来开开心心的坐在座位上打游戏,打的正开心的时候,一个老哥过来问我借充电宝,借过去稍微讲了两句话,到目前为止一切正常。然后过了一会之后,这个老哥开始和我疯狂地吹牛:“兄弟,我跟你说,充电宝这玩意还得是以前质量高!我爸有一个,牌子货!呵,一个用了十多年!” 嚯,好家伙,难道这就是传说中的葫芦娃合体的牛逼闪闪的充电宝嘛,我不禁向这么🐮🍺的充电宝低下了头,继续玩我的游戏,然后这位大哥似乎没有停下来的意思,继续给我讲充电宝的故事,顺带补充了一下他那🐮🍺的充一次电可以玩十天的手机,然后他讲这个讲了二十多分钟。。。我打了两三局炉石后停下来听他继续吹牛,,,然后我开始左顾右盼,他开始越来越离谱,给我扯他的充电宝多多少钱。。。属实听不下去,,,尬的抠出一万套海景房

阅读全文 »

写在前面

本文为自己做南京大学计算机科学与技术系计算机系统基础课程的小(mo)型(gui)项目 (Programming Assignment, PA)的一些心路历程与实验记录,会一直更新到把整个PA给写完了

博主目前为国内某中流985天坑专业在读大三老🐶一枚,在学CSAPP的时候了解到了这个小(mo)型(gui)项目,于是下定决心来做它,为了变强,加油!

至于标题为啥这么取,,,只是为了补偿一下我最近被他摧残的差不多了的小心脏😭,yzh老师真是太太太太太好了,把这么好的资料都公开了出来,唯一的小瑕疵就是不提供OJ给我们测试,,,不过我也很理解,能有这么好的学习资料我这种天坑专业的已经很满足了!🤑

南大真是太好了,南大就是中国的CMU啊——某中流985学子投来羡慕的目光

PA0😏——我已出仓,感觉良好

PA0还算蛮简单的,也就是配配环境,玩玩Git和vim。虽然之前都了解过这两个家伙,但是都没怎么用过,所以熟悉它们还是花了些时间的。就是唯一想吐槽的是老师这里的讲义居然是全英文的😭,英语不好的我流下了不争气的泪水😭 但是作为一名”工程师“应有的素质,我觉得老师这里做的肥肠棒,成功的让我燃起了好好学英语的兴趣!而且强制使用英语看这些报告虽然刚开始慢了点,还得时刻借助翻译的插件,但是时间长了之后对自己肯定只有好处,没有坏处。正如讲义里提到的:坚持一年, 你就会发现有不同; 坚持两年, 你就会发现大有不同。

整个讲义看下来,能明显的感觉到老师的良苦用心,又是让我阅读提问的智慧别像弱智一样提问然后写800字的感想,又是随时都在让我

  • STFW——Search The Friendly Web

  • RTFM——Read The Friendly Menu

  • RTFSC——Read The Friendly Source Code

    阅读全文 »

前言:看了好久的书,写了好几个晚上,参考了一些大佬的笔记,终于把这个bomblab写完了

实验简介

这个著名的bomblab为我们提供了一个二进制文件,然后我们需要将这个二进制文件进行反汇编得到一堆的汇编文件,通过阅读汇编文件中的代码以及GDB的调试来得到需要输入的字符密码来进入下一关。

整个实验一共有六个正式关卡,一个隐藏关卡,密码和进入隐藏关卡的方法也藏在文件中,需要我们一点点的探寻其中的蛛丝马迹,拆开炸弹。如果拆弹失败的话,实验文件会给我们打印出一个BOMB!!!如果你是CMU的学生,每次不小心的BOMB还会扣你这个实验的分数,不过我们不是CMU的学生,就随便他炸了23333

准备工作

没有实验文件的需要先到这个网站下载一个

首先我们需要进入到这个lab的文件所在的文件夹下,可以看到有README、bomb、和bomb.c三个文件,我们先打开bomb.c看看有些什么东西

可以看到有6个phase,每个phase基本都是要我们输入一段字符,然后它调用了判断我们字符对不对的函数。大概浏览一下,知道要干什么之后先把bomb文件反汇编一下:

1
objdump bomb -d > disassemble.txt

得到了bomb的反汇编代码打开

看到一堆莫名其妙的东西,不知道怎么下手,想起来之前有6个phase,于是就搜索了下phase,找到了phase所在地,就用GDB来进行调试了

1
gdb bomb

然后给爆炸和phase_1先打上断点

1
2
b explode_bomb
b phase_1

run了之后,随便输入一点字符进入phase_1,先把当前的函数用disas指令反汇编一下

不熟悉GDB调试的可以参考CMU的课程提供的手册

阅读全文 »

前言:本文为学习力扣文章《动态规划精讲(一)》时的学习笔记,本文对其进行线性动态规划相关的文章和问题进行了一定的转载和修改并在其中加入了一些个人的理解。

线性动态规划简介

线性动态规划主要是从0开始从小到大依次递推过去的,特点为问题规模依次从0到i依次递增,较大规模的问题依赖较小规模问题的解

这里问题规模为 i 的含义是考虑前 i 个元素 [0..i] 时问题的解。

状态定义:

1
dp[n] := [0..n] 上问题的解

状态转移:

1
dp[n] = f(dp[n-1], ..., dp[0])

单串

单串是线性动态规划最简单的一类问题,输入是一个串,状态一般定义为 dp[i] := 考虑[0...i]上,原问题的解,其中 i 位置的处理,根据不同的问题,主要有两种方式:

  • 第一种是 i 位置必须取,此时状态可以进一步描述为 dp[i] := 考虑[0...i]上,且取 i,原问题的解;
  • 第二种是 i 位置可以取可以不取
阅读全文 »