摘要: 十进制:日常使用最广泛的进制 二进制:计算机底层真正使用的进制 十六进制:二进制位数太多不好看,每4位合并成一个16进制位,便于观察,日常编程最常用的进制 八进制:每3位合并成一个8进制位,优点是不用引入新的字符(十六进制用A~F表示10到15) 问:既然已经有了十六进制,为什么还要有八进制? 答: 阅读全文
posted @ 2023-08-04 21:35 wkxnk 阅读(436) 评论(0) 推荐(0) 编辑
摘要: 对于数组a: 在绝大多数情况下,a 等价于 &a[0],即数组名等于数组首元素地址(等同于数组首地址) 只有两种情况例外: 1. 对数组名取地址(&a),此时虽然数值上等于 a,但表示含义不同,a 表示首元素地址,&a 表示整个数组的首地址, 因此 a+1 ≠ &a+1,具体见前篇; 2. 使用 s 阅读全文
posted @ 2023-08-04 10:49 wkxnk 阅读(47) 评论(0) 推荐(0) 编辑
摘要: #include<>:在 编译器默认的头文件目录 中搜索包含的头文件 #include"" :首先在 当前源文件所在目录 中搜索包含的头文件,如果没有,再在 编译器默认的头文件目录 中搜索 阅读全文
posted @ 2023-07-29 23:56 wkxnk 阅读(4) 评论(0) 推荐(0) 编辑
摘要: Windows 路径: Program Files \ Visual Studio \ include 分隔符是 “\” (转义字符) Linux 路径: / usr / local / include 分隔符是 “/” (除号) 阅读全文
posted @ 2023-07-29 22:29 wkxnk 阅读(189) 评论(0) 推荐(0) 编辑
摘要: int a[5] = {0, 1, 2, 3, 4} int *p = a+4; cout << p[-2] << endl; // 2 p[-2] 表示从指针当前位置向前寻址两个数据类型长度 注1:只有在 p 是指针时才能这么做,不应当出现 a[-2] 这样数组名加负数下标的用法,因为会超出数组地 阅读全文
posted @ 2023-07-22 17:29 wkxnk 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 1. 如果局部最优解可以导出整体最优解,直接用贪心算法 2. 如果局部最优解不一定导出整体最优,整体最优可能来自于局部次优解,那就要用搜索(一般用深搜 dfs,dfs 用递归更好写) 3. 如果搜索树中有大量的重复状态出现(可能导致搜索超时),则应该用 dp 4. dp 一般用于求解方案数问题,如果 阅读全文
posted @ 2023-07-20 16:59 wkxnk 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 1. 要有递归思想:考虑一个由根节点和左右儿子构成的子树,这是一个最简单的模型,其中左右儿子也是可以递归的子树,一切围绕树的操作都可以泛化为左子树、根节点、右子树三者之间的互动,然后用 dfs 遍历整棵树即可。 2. 边界条件不要考虑叶子节点,要考虑叶子节点的儿子(为空指针),叶子节点的判断条件太啰 阅读全文
posted @ 2023-07-20 16:47 wkxnk 阅读(11) 评论(0) 推荐(0) 编辑
摘要: begin() 返回首位元素的迭代器 end() 返回末尾元素下一个位置的迭代器 front() 返回首位元素的引用 back() 返回末尾元素的引用 阅读全文
posted @ 2023-07-06 23:57 wkxnk 阅读(77) 评论(0) 推荐(0) 编辑
摘要: DFS进行分块递归的时候,注意各个子空间是否有重叠部分,如果有,最好改为DP(防止重复计算) dfs(d, n) { dfs(l, n); dfs(r, n); } 检查 l 和 r 是否有重叠部分 阅读全文
posted @ 2023-06-15 00:45 wkxnk 阅读(96) 评论(0) 推荐(0) 编辑
摘要: getchar 为输入单个字符,输入 "et al",得到的是 'e', 't', ' ', 'a', 'l' printf 为输入多个参数,以空格号为分隔,输入 “et al”(%s输入格式),得到的是 "et", "al" gets 为输入字符串,结束标记为换行符 '\n',输入结束以后读取到的 阅读全文
posted @ 2023-06-15 00:13 wkxnk 阅读(67) 评论(0) 推荐(0) 编辑