背包问题 推公式的瘾犯了,才有了这篇题解 01 背包 问题简述 给你 N∈NN \in \mathbb{N}N∈N 个物品,其中第 iii 个物品具有体积 vi∈Nv_i \in \mathbb{N}vi∈N 和价值 wi∈Nw_i \in \mathbb{N}wi∈N,和一个容量为 V∈NV \in \mathbb{N}V∈N 的背包。现在从 NNN 个物品中选出一些物品,要求在能放入背包的前提下(即 2023-11-19
leetcode 260 只出现一次的数字 III 题意 给定一个整数数组 numsnumsnums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。 做法 设两个不同的数是 aaa 和 bbb, 取所有数的异或和 xxx,有x=a⊕bx = a \oplus bx=a⊕b 。用 y=x &−xy = x \ \& -xy=x &−x 取出 xxx 最低的比特 111 位。设 y=1< 2023-11-19 Solution 位运算
八字笔记 食神为泄,为表达,印为吸收,为自我反省。印弱食神旺,不会反省,若火土旺盛,日主发脾气。食伤又主想法说话,食伤旺,胡思乱想,内心烦躁。食神说话,伤官辱骂。 土食伤,堵塞不通,自寻烦恼。 木为脑神经,为记忆,缺木,主忘性大。 曼哈顿距离为一的两个宫位之间一定有作用。月干与时干之间有作用。同种五行相连,合为一个整体。 印弱食神旺,说话无逻辑,跑题。禄星位置表示事业位置。 水代表血压。 水代表财,表示低下 2022-07-06 Bazi 八字
记一次帮儿子装anaconda 儿子conda炸了,卸载重装,缺Scripts一堆文件。换清华源老版本,conda install连清华源ssl error,改ssl、http,卡在fetching meta。 conda-clean后运行uninstall.exe,再重装官网,成功。 记逝去的一个下午>_< 2022-03-02 Miscellany anaconda
leetcode 101 对称二叉树 题意 给定一个二叉树及其根节点,检查是否轴对称。 做法 如果一棵树的左右子树轴对称,那么这棵树对称。于是问题转化为左右两棵子树是否镜像,同样这个问题可以拆分成【左子树的左子树和右子树的右子树是否镜像】和【左子树的右子树和右子树的左子树是否镜像】这两个子问题,可以递归解决。注意到镜像时的子问题左右已经互换了,使用两个向左右相反方向移动的指针递归遍历两棵树即可。 代码 123456789101112c 2022-02-15 Solution DFS
leetcode 第280场周赛 T1 得到 0 的操作数 水题 T2 使数组变成交替数组的最少操作数 题意 如果一个数组为交替数组,那么它奇数下标子序列值相同均为 xxx、偶数下标子序列值相同均为 yyy ,且 x≠yx \neq yx=y 。给出任意一个数组,问至少几次单点修改操作才能使它变成交替数组。 做法 考虑贪心,不论奇数子列还是偶数子列,保留出现次数最大的那个数 fxfxfx 和 fyfyfy,将其他数改成最大数。但 2022-02-14 Solution 模拟 贪心 排序 力扣周赛
leetcode 847 访问所有节点的最短路径 题意 给出一张无向图,求访问所有节点的最短路径。 做法 法一 状压+广搜 修改常规广搜,队列元素改为包含节点、当前路径长度、节点访问情况的三元组。用二进制数 maskmaskmask 表示每一节点访问情况,如果 maskmaskmask 的第 iii 位是 111,则表示节点 iii 已经访问过。初始时需将所有位于起点的状态入队。 法二 状压dp 考虑整条路径经过的点序列,虽然可能会重复访问某个点 2022-02-09 Solution 状压dp 搜索 二进制
leetcode 434 字符串中的单词数 题意 给出一个含有空格的字符串,统计串中单词数量。 做法 抓住关键。扫描每一字符,两种情况计数器加一:首字符不是空格;前一字符空格且当前字符不是空格。 代码 123456789101112class Solution {public: int countSegments(string s) { int cnt = 0; for (int i = 2022-02-08 Solution 模拟
C++11 pair作为无序容器的key 由于 pairpairpair 没有自带哈希函数,需要手写并传入。无序容器底层为哈希表,需要哈希函数。 1234567auto hash_p = [](const pair<int, int> &p) -> size_t { static hash<long long> hash_ll; return hash_ll( p. 2022-02-08 C++ C++11 std::hash
C++11 lambda 递归 123456789101112131415#include <iostream>#include <functional>int main(){ auto f = [](int x) { std::function<int(int)> s = [&](int n) { 2022-02-08 C++ C++11 lambda表达式