一次有趣的尝试 -- 最小化 Hello,World
发布于
# share
0 起因
计算机系统导论课上老师说可以内联汇编来尽可能减小 Hello,World!的大小。
我觉得既然要做,不如就做到极致。何不试试直接写汇编呢!
1 汇编的尝试
直接用 as 有点不理想,因为没有 db 用来往文件里写字符串。
不妨试试 nasm,我们只需要一次 write 和一次 exit,很容易编出这样的 asm:
计算机系统导论课上老师说可以内联汇编来尽可能减小 Hello,World!的大小。
我觉得既然要做,不如就做到极致。何不试试直接写汇编呢!
直接用 as 有点不理想,因为没有 db 用来往文件里写字符串。
不妨试试 nasm,我们只需要一次 write 和一次 exit,很容易编出这样的 asm:
这段时间糟心事一堆,比如什么因体测痛失一等奖学金,什么 XCPC 在校内连省赛名额都打不到,亦或是越来越听不懂的数分高代和从来没有听懂过的大物。
虽然这些问题说到底就是菜就多练,但是发生了还是让人很难过。
所以在清明期间出去散散心是一个早就有预谋的事情,但是去厦门则不是。
本来的计划是,杭州市内晃晃,最多到上海或者浙江省内乱晃,当日去当日回。
不过清明前几天整了张交通联合的实体卡。一看发卡地是厦门 e 通卡。一下子回想起高三网课时期,每天都在听 一道厦门 写作业,非常向往去厦门看海。内心的欲望点起来就不会轻易熄灭呢。
与此同时,学校发布了清明节多放一天的消息。掐指一算,便感天时地利人和。订票,订酒店,出发!
排序,选前 2 后 2。
整出 LCM。
容易发现要么是对 LCM 的余数,要么就是对 LCM 的余数 + LCM。
容易观察到在 的时候一就会被交换出去。
输出最小的 2 的次幂即可。
开始和结尾是固定的。
扫描两层中间的部分,只能走上面就归 0,都能走 +1, 只能走下面就结束。
直接最大值减最小值即可。
容易发现,首先填第一行和最后一行是较优的,只有四个端点处有可能重复,别的点每加一个都会覆盖两条对角线。
对四个端点特判即可。