集合论+图论+常用证明思路
北航软院 离散数学2 知识总结
大二上 面向对象课程 复习(二)
(一):大二上 面向对象课程 复习
先占位,复习中
Lesson 8 完善类的设计
感觉是又总结了一遍前面的知识,主要想说如何设计代码
1. 多态
多态简而言之就是“同一个接口,使用不同的实例而执行不同操作”。 多态存在的三个必要条件:
- 继承 (Inheritance):必须有父子类关系。
- 覆盖 (Override):子类必须重写父类的方法。
- 向上转型 (Upcasting):父类引用指向子类对象(
Father f = new Son();)。
核心考点(出现n遍了):
成员变量(字段):编译运行都看左边。
- 如果你写
Father f = new Son();,然后调用f.age。不管Son类里有没有定义age,系统只看Father类里有没有age。如果有,取父类的值。 - 原因:Java 中字段没有多态性,字段是静态绑定的。
- 如果你写
成员方法(非静态):编译看左边,运行看右边。
- 你调用
f.eat()。编译时,编译器检查Father类有没有eat(),没有就报错(编译失败)。运行时,JVM 会去调用Son类重写过的eat()。 - 这就是“动态绑定”。
- 你调用
静态方法:编译运行都看左边。
- 静态方法不属于对象,属于类,不具有多态性。
北航软院算法 23级C7 题解
主播想要练习一下,故花了两个小时模拟了一下23级的C7赛
特意买了个学校机房同款包浆古董慢回弹键盘

A 选择题
第1题
KMP算法的提出者是哪几位___。
- A. D.E.Knuth
- B. J.H.Morris
- C. V.R.Pratt
- D. htunK.E.D
- E. sirroM.H.J
- F. ttarP.R.V
大二上 面向对象课程 复习
以申雪萍老师PPT标号为章节。
部分内容来源于AI总结。(每个PPT都接近100页,实在看不完了)
system提示词:
目前你是北航面向对象(OOP Java)课程的老师,你有一些学生因为一些原因没有来上课,但是马上就要期末考试了,这些同学来问你,你一定要把所有知识点都教给他们,让他们听完你的讲授都能拿100分。
请根据学生给你的PPT,帮他们系统的讲述PPT上的所有内容,让他们听完你的讲述之后就能学会这个PPT上全部的内容(所以不要漏掉PPT上任何可能成为考点的部分),并且对这章的逻辑有了充分的认识。
你的学生都很聪明,所以不要用弱智般的比喻或拟人来讲解,但可以用一些非常贴合或者常用的例子或者比喻。 算法 C7 部分题解
发现发题解能加平时分,之前都没有交过,最后一次赶紧水两道题,防止我的期末挂挂~
C 前缀数组
题目
题目描述
在植物理想国中有很多种类的仙人掌(Cactus),例如「可爱仙人掌」(Cutetus),「拐弯抹角仙人掌」(Pointless Cactus)。
下面将给出 $n$ ($1 \le n \le 1000$)个名字(一个名字由若干个单词组成,单词是指由空格分割的字符串),Yuki 想知道其中哪些名字是仙人掌的名字。
由于 Yuki 对仙人掌并不熟悉,所以只能认为名字中有至少一个单词满足以下至少一个条件的,都是仙人掌:
- 单词以
cac开头(不区分大小写) - 单词以
tus结尾(不区分大小写) - 单词含有
cactus作为子串(不区分大小写)
例如,Cattus 是「仙喵掌」,当然是仙人掌,但 Tree Tree 是「好多树」,不是仙人掌。
输入描述
输入包含不定的若干行(不超过 $1000$ 行),每一行一个字符串(仅包含大写字母,小写字母,空格或连字符)表示一个植物的名字。
形式化的来说,大写字母是指 ASCII 码在 $[65, 90]$ 之间的字符(A-Z);小写字母是指 ASCII 码在 $[97, 122]$ 之间的字符(a-z);空格是 ASCII 码为 $32$ 的字符( );连字符是 ASCII 码为 $45$ 的字符(-);单词是指由空格分割的字符串。
输出描述
输出一个正整数,表示有多少个植物是仙人掌。