一、算法背景及意义 (一)背包问题背景 背包问题是组合优化领域中的经典问题,具有广泛的实际应用场景,如资源分配、项目投资决策等。扩展简化折扣{0 - 1}背包问题(ESD{0 - 1}KP)是背包问题的一种变体,它在传统背包问题的基础上增加了一些复杂的约束条件,如物品的折扣系数以及每个项集中多个物品 ...
分享Z字形排列字符串的解法,包括二维矩阵模拟、行模拟(压缩矩阵、代码精简)、伪直接构建和真直接构建,真直接构建需处理周期和行字符数,直接拼接结果字符串。 ...
Preface 只能说阅读理解能力有待提高,\(B\)题看了半天愣是看不懂一点。只能跳了。 依旧是复习篇,感觉队友当时开出来的\(dp\)难度不低,感慨张神的强大。 我会在代码一些有必要的地方加上注释,签到题可能一般就不会写了. 以下是代码火车头: #include <iostream> #incl ...
概述 对于C#中的Dictionary类相信大家都不陌生,这是一个Collection(集合)类型,可以通过Key/Value(键值对的形式来存放数据;该类最大的优点就是它查找元素的时间复杂度接近O(1),实际项目中常被用来做一些数据的本地缓存,提升整体效率。 那么是什么样的设计能使得Diction ...
这道题知识点参考书97页-100页稀疏矩阵的相关知识。 知识点: 什么是稀疏矩阵,三元组线性表和十字链表。 什么是转置(运算)。 如果一个矩阵中绝大多数元素数值为0,我们称其为稀疏矩阵 一般稀疏矩阵有两种表示方法,三元组线性表和十字链表 三元组线性表: 我们先来讲讲三元组线性表是如何表示稀疏矩阵的 ...
马拉车法求解最长回文子串,优化中心扩展法,统一奇偶处理,利用对称性减少重复计算,时间复杂度O(n),空间复杂度O(n)。 ...
比赛地址: https://codeforces.com/contest/2040 A. Game of Division 题目 https://codeforces.com/contest/2040/problem/A 题意 给你一个长度为 \(n\) 的整数数组 \(a_1, a_2, \ldo ...
求解最长回文子串,可用暴力破解法O(n^3),优化为动态规划O(n^2)或中心扩展法O(n^2),动态规划空间O(n^2),中心扩展法空间O(1)。 ...
LS-DYNA x86_64 二进制文件 大多数版本 - ifort + MKL 可在 Intel Xeon 和 AMD EPYC 芯片上运行 在两种芯片上通过相同的输入产生相同的显式结果 (对于隐式,MKL 需要特殊的环境变量) 附加版本 AOCC + AOCL - 可在英特尔至强和 AMD EP ...
省流版 A. 统计计数即可 B. 模拟更改即可 C. 考虑每个寿司,找到满足条件的位置最小值,即一个前缀最小值 D. 搜索剪枝即可 E. 期望题,根据期望定义写出转移式,从生成函数的角度求翻出 \(i\) 张稀有牌的概率 F. 从深度最大的横条开始,考虑下落时求解的每列深度然后更新,用线段树维护即可 ...
题目 链接 LeetCode 263[丑数] 详情 实例 提示 题解 思考 题目对丑数的定义:只包含质因数2、3、5的正整数 条件一:只包含质因数2、3、5 条件二:正整数 对于条件二很好筛选:如果给定值 n 小于 1 ,即给定值为 0 或者是负数,此时条件二不满足,则返回 false 该部分的代码 ...
题目 链接 LeetCode LCR072[x的平方根] 详情 实例 提示 题解 思路一[暴力法] 由于所求的是整型且是正符号整型,可以采取循环遍历的方式来求取平方根 用 for 循环将 i 由 0 开始遍历 循环体:求 i 的平方值 当平方值小于指定值,此时循环继续 退出循环的条件: 当平方值为指 ...
本文旨在深入解析动态规划(Dynamic Programming, DP)的本质,从其定义与应用场景出发,逐步剖析其核心思想、基本性质及实际解题方法。通过具体例子如斐波那契数列、最长公共子序列、数楼梯等经典问题,详细讲解动态规划如何通过“将大问题拆解为小问题,并保存子问题的解以避免重复计算”,实现高... ...
题目 链接 LeetCode LCR126[斐波那契数] 详情 实例 提示 题解 思路 首先想到用递归来求解,F(n) = F(n - 1) + F(n - 2) 但是吧,一看提示啊,0<= n <= 100,递归执行100次,那肯定是会超时的噻 所以单纯递归肯定是不可行的,此处我采用循环代替递归 ...
题目 链接 LeetCode 509[斐波那契数] 详情 实例 提示 题解 思路 递归求值,但是吧,如果是用递归的话有可能会造成内存超出限制的错误,当然我不能确定会不会报此错误,因为我没有试过 此处我是用循环代替递归的 n为0时,fn为0 n为1时,fn为1 n为2时,fn为 fn_1+fn_2 = ...
题目 链接 LeetCode 66[加一] 详情 实例 提示 题解 思路 错误思路 将数组转换为数字,然后进行+1运算 最后在力扣上提交,就成功的出错了,出错详情详见:https://leetcode.cn/problems/plus-one/submissions/584829592 数组有长度啊 ...
ACGO 巅峰赛#15 - 题目解析 间隔四个月再战 ACGO Rated,鉴于最近学业繁忙,比赛打得都不是很频繁。虽然这次没有 AK 排位赛(我可以说是因为周末太忙,没有充足的时间思考题目…(好吧,其实也许是因为我把 T5 给想复杂了))。 本文依旧提供每道题的完整解析(因为我在赛后把题目做出来了 ...
按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。 每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方 ...
题目大意 详细题目传送门 两个 \(01\) 串,可以对两个串中任意相邻的字符进行交换,没有代价可以进行任意多次。可是两个串有的位置的字符是定死的,无法被交换,求任意次操作后最多让两个串的多少个位置 \(01\) 相等。即 \(\sum [a_i=b_i]\)。 \(n\leq 10^5\) 思路 ...
排序 归并排序 归并排序介绍与代码 大体思路:归并排序总体思路是,先把一串待排序数列分为前后两组,把这两组分别排为顺序数组,再将两组顺序数组合为一整个大的顺序数组。 objection1:分组后分别排好序?用选择排序吗?递归的思路是什么? 并非选择排序,而是递归的方式。可以看到,第一次“将一串待排序 ...