摘要: 经典例题:石子合并 题目链接 N 堆石子排成一行,现要将石子有次序地合并成一堆,规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。计算合并最小得分。 方法一、区间dp #include<bits/stdc++.h> using namespace std; const 阅读全文
posted @ 2023-02-20 20:13 风归去 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 1、例题 Find a Multiple 题目链接 题意:给定n个数,问能不能从中选取m个数,使得这m个数的和模n等于零。 思路:前缀和 + 鸽巢原理。从1~n先求一遍前缀和,假设这些数都不能模n等于0, 那么这些数模n的取值范围在[1, n - 1], 一共 n - 1个,小于n。那么根据鸽巢原理 阅读全文
posted @ 2023-02-20 20:11 风归去 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 1、含义 迭代加深搜索是一种每次限制搜索深度的深度优先搜索。 2、例题 整数变换问题 刚开始看到最少变换次数,果断选择BFS,结果MLE。 Q1:为什么使用BFS会爆内存? ①搜索树过深或者过宽;②BFS的实现基础是队列,队列的空间复杂度很大。 Q2:有何替代解决方法? ①时间换空间:使用迭代加深搜 阅读全文
posted @ 2023-02-20 19:18 风归去 阅读(132) 评论(0) 推荐(0) 编辑