北航刷题笔记 其一

北航刷题笔记 其一
fufhaha北航刷题笔记
2.1.15,14,12,9
1.判断2的幂次数
1 | //关键是搞出一个数组,把这个数转换为一个二进制数,数组s[32] |
2.直线与圆
1 | //这题首先就是直线方程的构造有点麻烦 |
3.方向判断
1 | //关键是atan2(y,x)返回的是弧度,而且是[-pi,pi] |
4.重逢时刻
1 | int h = n % 12; |
3.1.7,11,14,15,16
1.整数划分*
1 | //关键是动态规划,把种类用dp[i][j]来表示,数i划分数中不超过j时的最大方案数有多少 |
2.送快递
1 | //这题说每个快递都送错的次数,典型的全错位排序 |
3.找迷宫
1 | //这道题是一个类似于dfs 的,关键都是标记走过的地方和控制方向。注意标记的时候要考虑范围 |
4.递归汉诺塔
1 | //这道题求的是汉诺塔移动的次数,关键在于n和n-1时的递归,脑中根据题目限制的条件想想公式 |
5.熊猫序列
1 | //联想斐波那契数列求解 |
3.2.24,25,27,28,18 *,14,9
1.游戏教学
1 | //这个题就是一个dfs搜索的题,关键他说外围假设都是水,那开数组的时候开大一圈,外围都用水代替就好 |
2.蛇形矩阵
1 | //也是一道dfs题,和上文找迷宫类似,同样要用到方向,这道题关键要保证退出的条件合法 |
3.求相反数
1 | //就是检查最后一位,他给的是补码,就最后一位如果是1就为0,如果是0就为1,并且前一位为0 |
4.火柴拼图
1 | //关键是把每个数字所需火柴数给列出来 |
5.狐狸抓兔子
1 | //和约瑟夫问题同理,下标,然后标记 |
6.字符串纠错
1 | //关键是把键盘转化为二维数组的形式 |
7.阿狄的冒险
1 | //用到队列,先进先出,每次满了或者不够,就把最开始的那个放入仓库 |
5.1.16 ,2
1.田忌赛马
1 | //这道题除了策略最小战最大,最小战最小,最大战最大之外,还用到了双指针,不过不是传统意义上的,只是同时遍历数组 |
2.矩阵变换
1 | //这题包括前面几道的关键的数组的翻转; |
6.1.1,6
1.工作ddl
1 | //对截止时间排序,他要求保证完成,完不成就下一个,那就从最短的一个个来 |
2.导员的生日推送
1 | //对于结构体中多个成员的排序 |









