08 2023 档案
摘要:给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 ###1. 动态规划 由于二叉搜索树是有序的,父节点值大于左子树,而小于右子树,所以选定根节点后会将集合划分为两部分 显然,左子树和右子树的构成同样也是个二叉搜索树个数
阅读全文
posted @ 2023-08-29 02:30
失控D大白兔
摘要:一般是要求在对数时间完成查询,或是索引链接过长,迭代步数太多 ###1. [树节点的第K个祖先](https://www.cnblogs.com/929code/p/17473917.html) ###2. [在传球游戏中最大化函数值](https://www.cnblogs.com/929code
阅读全文
posted @ 2023-08-29 00:25
失控D大白兔
摘要:小A买了一个空间跑路器,每秒钟可以跑 2^k千米(k 是任意自然数)。 当然,这个机器是用longint 存的,所以总跑路长度不能超过其范围。 小A的家到公司的路可以看做一个有向图,小A 家为点 1,公司为点 n,每条边长度均为一千米。 小A想每天能醒地尽量晚,所以让你帮他算算,他最少需要几秒才能到
阅读全文
posted @ 2023-08-29 00:25
失控D大白兔
摘要:给你一个长度为 n 下标从 0 开始的整数数组 receiver 和一个整数 k 总共有 n 名玩家,玩家 编号 互不相同,且为 [0, n - 1] 中的整数。 你需要从 n 名玩家中选择一名玩家作为游戏开始时唯一手中有球的玩家,球会被传 恰好 k 次 定义函数 f(x) 表示从编号为 x 的玩家
阅读全文
posted @ 2023-08-28 16:23
失控D大白兔
摘要:给你一个下标从 0 开始的数组 nums ,它包含非负整数,且全部为 2 的幂,同时给你一个整数 target 。 一次操作中,你必须对数组做以下修改: * 选择数组中一个元素 nums[i] ,满足 nums[i] > 1 。 * 将 nums[i] 从数组中删除。 * 在 nums 的末尾添加两
阅读全文
posted @ 2023-08-28 00:14
失控D大白兔
摘要:###一. 广度优先算法 使用队列记录当前层次的状态 同时使用哈希表防止重复遍历 单向广度优先是逐渐增大范围同时判断目标是否在范围内 ``` int dir[4][2] = {{1,0},{0,-1},{-1,0},{0,1}}; int main() { string board; cin>>bo
阅读全文
posted @ 2023-08-25 02:16
失控D大白兔
摘要:爱与愁大神后院里种了n 棵樱花树,每棵都有美学值 爱与愁大神在每天上学前都会来赏花。爱与愁大神可是生物学霸,他懂得如何欣赏樱花: 一种樱花树看一遍过,一种樱花树最多看,一种樱花树可以看无数遍。 但是看每棵樱花树都有一定的时间 。爱与愁大神离去上学的时间只剩下一小会儿了。求解看哪几棵樱花树能使美学值最
阅读全文
posted @ 2023-08-24 00:52
失控D大白兔
摘要:自 01背包问世之后,小 A 对此深感兴趣。一天,小 A 去远游,却发现他的背包不同于 01 背包, 他的物品大致可分为 k 组,每组中的物品相互冲突,现在,他想知道最大的利用价值是多少。 ###1. 动态规划 分组背包 ``` int maxval(int v,vector&c,vector&w,
阅读全文
posted @ 2023-08-24 00:39
失控D大白兔
摘要:设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重≤1000),可以表示成多少种重量? ###1. 动态规划 多重背包问题,结合0-1背包求解 ``` void ZeroOnePack(int cost,vector &dp){ for(int j=1000;j>=cost;j--)
阅读全文
posted @ 2023-08-24 00:16
失控D大白兔
摘要:有n种药草,每种药草数量无限,给出采摘药草的时间和价值 同时给出总时间t,求能采摘的最大价值 ###1. 动态规划 ``` void maxval(int v,vector&c,vector&w){ int n = w.size(); long long dp[v+1]; memset(dp,0,s
阅读全文
posted @ 2023-08-23 23:23
失控D大白兔
摘要:有n种候选食物,且只有一样,分别给出对应食物的体积、质量、卡路里 飞船空间和载重都有限,分别为v和m,求能承载食物的最大卡路里 ###1. 动态规划 ``` void maxval(int v,int m,vector&weight,vector&volume,vector&w){ int n =
阅读全文
posted @ 2023-08-23 23:05
失控D大白兔
摘要:Shaass拥有n本书。他想为他的所有书制作一个书架,并想让书架的长宽尽量小。 第i本书的厚度是t[i],且这本书的纸张宽度是w[i]。书的厚度是1或2,所有书都有同样的高度(即书架的高是均匀的) Shaass以以下的方式摆放这些书籍。 * 1.他选择了一些书并竖直摆放它们。 * 2.他将剩余的书籍
阅读全文
posted @ 2023-08-23 21:11
失控D大白兔
摘要:一共有n个文件,每个文件大小为c[i],价值为w[i] U盘大小为S,传输端口大小为L,求最小的传输端口L使得U盘总文件价值不小于p ###1. 二分 + 动态规划 端口只是限制了可选的文件,去掉这个限制后,原问题是0-1背包问题 ``` void maxval(int n,int p,int S,
阅读全文
posted @ 2023-08-23 15:51
失控D大白兔
摘要:对于从 1∼n 的连续整数集合,能划分成两个子集合,且保证每个集合的数字和是相等的 求可以划分的方案数 ###1. 动态规划 ``` long long maxval(int n){ int sum = (1+n)*n/2; if(sum%2==1) return 0; vector dp(sum+
阅读全文
posted @ 2023-08-23 15:08
失控D大白兔
摘要:小明可以同时做计算两道不同的题目 习题集包含n道题目,没到题目耗时nums[i],求最少需要时间 ###1. 动态规划 题目等价于将数组划分为两个和最接近的数组,求两数组和的最大值 ``` int maxval(vector &nums){ //尝试划分为两个最接近的数组,同时返回两数组和的最大值
阅读全文
posted @ 2023-08-23 14:42
失控D大白兔
摘要:选取和不超过 S 的若干个不同的正整数,使得所有数的约数(不含它本身)之和最大。 ###1. 动态规划 + 筛预处理 ``` vector prime(10e3+1,1);//约数和,即价值 int init = []() {//筛预处理 for(int i=2;i dp(V+1); long lo
阅读全文
posted @ 2023-08-23 00:59
失控D大白兔
摘要:有x个药物和n个敌人 战胜第i敌人可以获得win[i]的经验值,失败可以获得lose[i]经验值,要想战胜第i个敌人,需要使用c[i]个药物 求可以获得的最大经验值 ###1. 动态规划 有点类似分组背包,失败需要0个药物,战胜或输给同一个敌人不能同时发生,属于同一组 但该题战胜敌人可能使用0个药物
阅读全文
posted @ 2023-08-22 23:50
失控D大白兔
摘要:东海未填平的区域还需要至少体积为 v 的木石才可以填平,而西山上的木石还剩下 n 块,每块的体积和把它衔到东海需要的体力分别为 k 和 m。 精卫已经填海填了这么长时间了,她也很累了,她还剩下的体力为 c。 如果精卫能把东海填平,则输出她把东海填平后剩下的最大的体力,否则输出 Impossible
阅读全文
posted @ 2023-08-22 16:31
失控D大白兔
摘要:餐馆菜品种类不少,有N种,第i中卖c[i]元,且每种只有一样 小A要把V元全部花光,问有多少种点菜方式 ###1. 动态规划 dp[j] = dp[j] + dp[j-c[i]] ``` int maxval(int V,vector&c){ int n = c.size(); vector dp(
阅读全文
posted @ 2023-08-22 15:50
失控D大白兔
摘要:有一个箱子容量为 V,同时有 n 个物品,每个物品有一个体积。 现在从 n 个物品中,任取若干个装入箱内(也可以不取),使箱子的剩余空间最小。输出这个最小值。 ###1. 动态规划 使用动态规划计算可达性即可 ``` int maxval(int V,vector&c){ int n = c.siz
阅读全文
posted @ 2023-08-22 15:31
失控D大白兔
摘要:医师把辰辰带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间, 每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。” ###1. 动态规划(0-1背包) 每个药草是唯一的
阅读全文
posted @ 2023-08-22 15:14
失控D大白兔
摘要:给你正整数 low ,high 和 k 。 如果一个数满足以下两个条件,那么它是 美丽的 : * 偶数数位的数目与奇数数位的数目相同。 * 这个整数可以被 k 整除。 请你返回范围 [low, high] 中美丽整数的数目。 ###1. 数位dp ``` class Solution { publi
阅读全文
posted @ 2023-08-20 19:35
失控D大白兔
摘要:给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。 如果子数组中所有元素都相等,则认为子数组是一个等值子数组 。 从 nums 中删除最多 k 个元素后,返回可能的最长等值子数组的长度。 ###1. 哈希分组 + 反悔队列 蠢逼做法 ``` class Solution { publi
阅读全文
posted @ 2023-08-20 17:40
失控D大白兔
摘要:给定数组只含1、2、3三种数 每次操作可以将一个数进行修改 将数组修改成非递减顺序的最少次数 ###1. 暴力(笨比做法) 枚举三种类型数分割的界限 ``` class Solution { public: int minimumOperations(vector& nums) { int res
阅读全文
posted @ 2023-08-20 15:18
失控D大白兔
摘要:背包问题本质上是求取全组合问题,可做的选择在外循环,遍历的范围在内循环 ###一. 0-1背包问题 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 该类型题目的特点是:**每种物品仅有一件,可以选择放或不放**。直接回溯搜索的时间
阅读全文
posted @ 2023-08-19 03:33
失控D大白兔
摘要:遍历时,贪心选择权重最高的值,同时将没有选择的信息保留(优先队列),以便反悔替换 有时存在两个维度,按其中一个维度排序,另一个维度反悔贪心 ####1. 魔塔游戏 反悔贪心 ``` class Solution { public: int magicTower(vector& nums) { lon
阅读全文
posted @ 2023-08-18 20:11
失控D大白兔
摘要:给你一个披萨,它由 3n 块不同大小的部分组成,现在你和你的朋友们需要按照如下规则来分披萨 每选一块,周围两块会被其他人分掉,请你返回你可以获得的披萨大小总和的最大值。 ###1. 动态规划 容易证明,可以选出任意一个长度为n的不相邻的数字序列 dp[i][j]表示前i个元素中,选择不相邻的j个元素
阅读全文
posted @ 2023-08-18 02:38
失控D大白兔
摘要:给你一个 rows x cols 大小的矩形披萨和一个整数 k ,矩形包含两种字符: 'A' (表示苹果)和 '.' (表示空白格子)。 你需要切披萨 k-1 次,得到 k 块披萨并送给别人。 切披萨的每一刀,先要选择是向垂直还是水平方向切,再在矩形的边界上选一个切的位置,将披萨一分为二。 如果垂直
阅读全文
posted @ 2023-08-17 01:06
失控D大白兔
摘要:一个整数的质数分数等于 x 不同质因子的数目。比方说,300 的质数分数为 3 ,因为 300 = 2 * 2 * 3 * 5 * 5 给你一个长度为 n 的正整数数组 nums 和一个整数 k 。 一开始,你的分数为 1 。你可以进行以下操作至多 k 次,目标是使你的分数最大: 选择一个之前没有选
阅读全文
posted @ 2023-08-14 17:16
失控D大白兔
摘要:####1. 读入数字后再读入含空格的字符串 ``` int n; cin>>n; cin.ignore(); vector strs(n); for(int i=0;i nums; int a; while(cin>>a){ nums.push_back(a); if(cin.get()=='\n
阅读全文
posted @ 2023-08-13 21:41
失控D大白兔
摘要:Every k-th, l-th, m-th, n-th dragon will be damaged, How many dragons suffered damage , if the princess counted a total of D dragons? 1. Straightforwa
阅读全文
posted @ 2023-08-11 11:44
失控D大白兔
摘要:给你一个长度为 n 的二维整数数组 items 和一个整数 k 。 items[i] = [profiti, categoryi],其中 profiti 和 categoryi 分别表示第 i 个项目的利润和类别 现定义 items 的 子序列的优雅度 可以用 total_profit + dist
阅读全文
posted @ 2023-08-10 15:37
失控D大白兔
摘要:给你一个 n x n 整数矩阵 grid ,请你返回 非零偏移下降路径数字和的最小值。 非零偏移下降路径 定义为:从 grid 数组中的每一行选择一个数字,且按顺序选出来的数字中,相邻数字不在原数组的同一列。 ###1. 动态规划 ``` class Solution { public: int m
阅读全文
posted @ 2023-08-10 01:25
失控D大白兔
摘要:给一个nxn的二维矩阵grid * grid[r][c] = 1 ,表示一个存在小偷的单元格 * grid[r][c] = 0 ,则表示一个空单元格 每个单元格的安全系数为离所有小偷曼哈顿距离的最小值 (1,1)到(n,n)路径的安全系数为所有单元格安全系数最小值 求一条最大安全系数路径 ###1.
阅读全文
posted @ 2023-08-10 01:24
失控D大白兔
摘要:给你两个长度相等下标从 0 开始的整数数组 nums1 和 nums2 。每一秒,对于所有下标 0 & nums1, vector& nums2, int x) { int n = nums1.size(); int sum = accumulate(nums1.begin(),nums1.end(
阅读全文
posted @ 2023-08-09 19:04
失控D大白兔
摘要:在二维网格 grid 上,有 4 种类型的方格: * 1 表示起始方格。且只有一个起始方格。 * 2 表示结束方格,且只有一个结束方格。 * 0 表示我们可以走过的空方格。 * -1 表示我们无法跨越的障碍。 返回在四个方向(上、下、左、右)上行走时,从起始方格到结束方格的不同路径的数目。 每一个无
阅读全文
posted @ 2023-08-04 02:10
失控D大白兔
摘要:给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。 ###1. 暴力匹配 列举不同子串长度,比较字符串 ``` class Solution { public: bool repeatedSubstringPattern(string s) { int n = s.size()
阅读全文
posted @ 2023-08-04 00:13
失控D大白兔
摘要:###一. 正则表达式语句 C++语句示例 ``` #include //匹配查找替换语法 regex r("[[:alpha:]]*Hello[[:alpha:]]*");//生成对象 regex_match(input_str, r) //进行匹配,返回true和false regex_sear
阅读全文
posted @ 2023-08-03 17:14
失控D大白兔
摘要:Reference [Pandas语句](https://www.cnblogs.com/929code/p/16342892.html) [MySQL语句](https://www.cnblogs.com/929code/p/17601580.html) ###一. 条件筛选 ####1. 大的国
阅读全文
posted @ 2023-08-02 19:28
失控D大白兔
摘要:数据库语句实践 一. 概念 数据库是长期存放在计算机内、有组织的、可共享的数据集合 数据库中的数据按一定的数据模型组织、描述和存储,且具有较小的冗余度、较高的数据独立性和易拓展性 数据库管理系统(DBMS)是用于建立、使用和维护数据库的软件 建立:定义、组织和存储数据 使用:查询、插入、删除和修改数
阅读全文
posted @ 2023-08-02 19:27
失控D大白兔
摘要:给你两个正整数 low 和 high ,都用字符串表示,请你统计闭区间 [low, high] 内的步进数字数目 如果一个整数相邻数位之间差的绝对值都恰好是 1 ,那么这个数字被称为步进数字 请你返回一个整数,表示闭区间 [low, high] 之间步进数字的数目 ###1. 数位dp 本质上就是动
阅读全文
posted @ 2023-08-02 01:43
失控D大白兔

浙公网安备 33010602011771号