ICPC 2024 成都站游记
你好,本文章为该博客的第⑤篇文章。
本文章是一篇游记,大部分记录的是当时的所思所感,比较偏个人情绪。
额外的,本文章大部分内容记录于比赛结束当天,在飞机上写的,最后一段于日后才补上。
?
我为什么要打算法竞赛?是热爱催生了功利,还是功利让我产生了热爱的错觉?
作为一个喜欢悠闲的人,我为什么要给自己的时间表安排的这么满?是为了快点迎来理想的生活,还是环境让我遗忘了初衷?
我无法回答这样的问题,我相信大多数人也无法回答类似这样的问题。我相信它们贯穿了我学业生活的始终,也贯穿了每个和我一样的,相当多计科学子学业生活的始终。
但是不管这个问题回答的怎么样,我们仍然坐上了各自选择的无数个航班,起飞 ,降落。
成都。
除了河南话,山东话,最熟悉的应该就是四川话了,理应陌生,但异常亲切。
烧烤,盒饭,火锅,比赛餐,如果我真的有机会细细品尝的话,应该都是好吃的。
热身赛的慌乱,最后一份模板的未打印,DDL的迫近占走练习时间,一切预示着已经过去的未来。想得到周六晚上那份隐隐的不安,应该会成为现实。
只是……来的还是有点残酷:
不是成都,只是赛场。
没有预想的异常的频发,却比异常更为刺痛人心。
9:05。 ...
北航2024面向对象程序先导课程心得
你好!本文章为该博客的第4篇文章!
本文章即将作为该课程结课作业提交至CSDN!
北航2024面向对象程序先导课程心得
前言
在知道这课有博客作业之前,我是动过心思把这课内容写在博客上的,后来犯懒了没做,没想到现在不得不写了(
既然作为作业,那就有作业必须要有的内容,从整体架构到各类心得体会,还有课程建议,这些都是必选项。不过在此之外,我觉得也应该在这里留一些给后人的提示,毕竟如果你是通过我的博客看这个文章的话,那也许你是希望学到一点东西的。
希望各位能通过这个课程和我的博客,能够对面向对象设计的模式有一点理解,至少最好摆脱可能会有的大一的抽象命名和混乱架构(
整体架构
由于这几次作业的迭代任务较为简单,以及最后一次作业实际上给了完成度较高的代码,所以实际上我所完成的结构比较简单扁平。大体上说,我的架构可以分为以下几部分:
副本相关:由Shd,Flm,Stn,Wnd,Frz类管理副本内怪物信息,各怪物具有其Treasure类管理各怪物守卫的宝藏信息,TreasureFactory类作为宝藏工厂。以上内容由AdventureSideGame类统一管理,负责协助AdventureGam ...
北航CO 2024 P3课上部分题目回忆与分析
你好!本文章为该博客的第3篇文章!
本文章是对课上部分的题目回忆,不保证回忆内容一定正确,请各位注意甄别!
以及,如果本文章涉及学术诚信问题,请第一时间和我联系,我将及时做出修改,谢谢支持!
P3课上题目回忆
三题为互相独立的添加指令题。(懒得写RTL了)
第一题添加指令为 cwp,I型指令。具体操作为,将 imm 零扩展为32位数后逻辑左移8位的结果与PC的值进行比较,若大于PC,则将 imm 零扩展的结果存入 GPR[rs] 中,否则存入 GPR[rt] 中。
第二题添加指令为 bgc,I型指令。具体操作为,将 GPR[rs] 分割为16个二进制数后,将每个二进制数 iii 转为其格雷码 greyigrey_igreyi,计算所有转化结果的1的个数之和,若该总和大于 rt,则进行类似 beq 的指令跳转,否则PC正常自增。
第三题添加指令为 lwso,I型指令。具体操作为……这题我不建议看文字描述,直接看伪代码吧:
12345678h_temp = GPR[rt] & 0xf;reg_right = (GPR[rt] >> h_temp) & 0x1f ...
北航CO 2024 P2课下部分思路引导
你好!本文章为该博客的第2篇文章!
本文章并不是对作业的题解,虽然可能会涉及若干题目的具体思路,但是文章重心是提供作者对课下作业所需技能知识的个人理解,希望读者能借此补足作业题目里缺失的思路。
以及,本文中的许多“规范”实际上是符合作者习惯并且在课程内行之有效的个人规范,可能存在不足之处,若读者发现问题,请批评指正。
P2课下作业内容介绍
本次课下作业的要求是,使用基于MIPS指令集的汇编语言,在Mars环境下完成一些程序。
具体来说,各题要求大致如下:
计算两个 n×nn\times nn×n 的矩阵乘法。
判断一个长度为 nnn 的字符串是否为回文串。
计算 m1×n1m_1\times n_1m1×n1 矩阵与 m2×m2m_2\times m_2m2×m2 卷积核的卷积结果。
按字典序输出 1∼n1\sim n1∼n 的全排列。
(选做)输出一个 n×mn\times mn×m 大小的迷宫从起点到终点不走回头路的方案数。
(选做)输出 nnn 的阶乘,保证结果不超过 100010001000 位。
拆出结构基础
总述
大概扫一眼各个题目的内容,我们可以归纳出来一些结 ...
单周期CPU搭建的细节记录
固定开场
你好!本文章为该博客的第1篇文章!
本文章将会记录我自己在尝试自行搭建第一个基于MIPS-C指令集架构(不包含特权和异常处理指令)产生的心得!
由于搭建的时候几乎完全是在闭门造车,所以里面的内容可能不正确/不严谨/难扩展/…,暂且请读者自行甄别内容好坏。
理理思路——怎样细化工作?
首先,问一个问题:我们要干什么?
当然,我们的回答可以是搭建一个单周期的CPU。
但是这个回答不够具体,我们不能通过这个回答搞清楚我们如何搭一个CPU。
所以我们根据理论课上的内容,添加一个简单的描述:我们希望把一些模块组合连接起来,搭成一个单周期的CPU。
那么,我们通过这个描述,对这个问题拆开一下,变成这样三个问题:
我们需要用到哪些模块构建这个CPU?
模块内是长什么样子的?
这些模块之间是如何连接的?
对于第一个问题,我们可以很快的用课上知识回答出绝大部分需要的元件:我们需要一个ALU用来计算,需要一块内存(或者两块,一块存指令,另一块存内存)保存数据,需要一些寄存器保存数据和数据交换,需要一个主要的控制器来控制数据的通断。
但是,对于剩下两个问题,如果我们不去关注自己要实现哪些指令的 ...
北航CO pre Logisim部分 斐波那契数列挑战思路引导
你好!本文章为测试博客用的文章,但是里面的内容确实可以帮到大家!
出于学术诚信考虑,本文章不包含本题目的完整答案,仅提供思路分析和设计上初步的引导,感谢理解!
题意简述
这个题的大意就是,在输入端给定一个32bit的无符号数 NNN,计算出斐波那契数列的第 NNN 项的最后32bit并输出。
其中:
题目对于斐波那契数列的定义是: f0=0,f1=1,∀n≥2,fn=fn−1+fn−2f_0=0,f_1=1,\forall n \ge 2,f_n=f_{n-1}+f_{n-2}f0=0,f1=1,∀n≥2,fn=fn−1+fn−2。
使用的主模块名称应为main。
在计算出结果之前,输出端应始终置为0,否则视为提交答案。
需要在64个时钟周期内给出答案。
思路分析
引入性质
这里我们不加说明的给出几个性质,没有这个性质的话后面讲述实在是推不下去:
(a+b) mod m=(a mod m+b mod m) mod m(a+b) \bmod m = (a\bmod m + b\bmod m) \bmod m(a+b)modm=(amodm+bmodm)modm。
(a∗b ...
问好。
你好!
这里是懒鱼,一个北航在读本科生,一个车万人,一个XCPCer。
建立这个博客的时候,其实我还没有具体要写什么的打算。也许未来我会选择把学习时候的各类思考,以及搞XCPC过程中的各个题目/算法笔记/游记(如果能打上比赛的话)等等的都丢上来。也许如果未来还有什么值得记录的活动的话,也会留一些内容上来。
毕竟是作为第一篇博客,而且脑袋空空不知道说些什么,那就随便测个功能就跑吧。
[Fn+1Fn]=[1110][FnFn−1]\begin{bmatrix}
F_{n+1} \\
F_n
\end{bmatrix}
=
\begin{bmatrix}
1 & 1 \\
1 & 0 \\
\end{bmatrix}
\begin{bmatrix}
F_n \\
F_{n-1} \\
\end{bmatrix}
[Fn+1Fn]=[1110][FnFn−1]
希望未来我们能一直见面!
为了终会到来的那天。