题目 链接 LeetCode 13[罗马数字转整数] 详情 实例 提示 题解 思路 遍历罗马字符串 如果元素是除了 'I'、'X'、'C' 以外的罗马字,即是 'V'、'L'、'D'、'M' 等元素,则直接加上罗马字对应的整型数字 如果元素是 'I' 则分以下几种情况: 此元素为最后一个元素,则直接 ...
本文将研讨 Codeforces 777(Codeforces Round 401 (Div. 2))中的题目 A-E。 题目连接 A B C D E 题目分析 A 难度:普及− 题面翻译: 给你三张牌:\(0\),\(1\),\(2\)。 最初选一张,然后依次进行 \(n\) 次交换,交换规则为: ...
动态规划-背包01问题推理与实践 背包01问题描述: 有storage大小的背包和weights.size()数量的物品,每个物品i对应的物品大小为sizes[i],价值为values[i],在不超过storage大小的情况下,如何装载物品使背包中的values和最大. 物品大小: vector<i ...
1 GPU确实很快 Bepuphysics v2 主要对两个架构细节非常敏感:内存带宽和浮点吞吐量。从配备双通道 DDR3 内存(如 3770K)的四核 4 宽 SIMD CPU 到配备 AVX2 和更高频率 DDR4 的 7700K,可以带来巨大的速度提升。尽管它仍然只是四核,而且从 Ivy Br ...
三元上升子序列的题解,利用线段树和离散化,或者用dp求解答案 P1637 三元上升子序列 简要题意,在一个序列中寻找长度为三的上升子序列 思路 有两种思路 直接法 一种是对于一个树,算一个数左边比他小的数,算右边比他大的数,然后相乘即是该该点处值 算比他大的数,和比他小的数,用树状数组或线段树即皆可 ...
题目 链接 LeetCode 3014[输入单词需要的最少按键次数I] 详情 实例 实例1 实例2 提示 题解 思路 一圈下来8个字母,每个字母按1次 二圈下来16个字母,前8个字母每个按1次,后8个字母,每个按2次 三圈下来24个字母,前8个字母每个按1次,中间8个字母,每个按2次,最后8个字母, ...
题目 链接 LeetCode 171[Excel表列序号] 详情 实例 提示 题解 思路 这其实是一道26进制的算术题 其中 A的权重为1,B的权重为2,C的权重为3,D的权重为4,E的权重为5,F的权重为6,G的权重为7 H的权重为8,I的权重为9,J的权重为10,K的权重为11,L的权重为12, ...
0 前言 当我们遇到需要处理非常大的整数的情况时,标准的数据类型如int或long long int可能无法满足需求,因为这些类型的数值范围有限。在这种情况下,我们需要一种方法来处理超出常规数据类型范围的大整数。本文将介绍如何使用C++实现大整数相加。 1 大整数相加的基本原理 从最低位开始逐位相加 ...
题目 链接 LeetCode 2544[交替数字和] 详情 实例 提示 题解 思路 依次求出各位数字,然后进行计算 循环找出各位数字:(循环体如下) 将数字对10取余得到对应位数的数字,加入到容器 numVec 数字除以10,得到新的数字,此数字是不包含已获取数字的位数 循环退出的条件:数字等于0 ...
题目 链接 LeetCode 2535[数组元素和与数字和的绝对差值] 详情 实例 提示 题解 思路 遍历容器,依次求出数字和与元素和,然后求差值: 通过 getSun 函数,求取元素的数字和 getSun 函数的实现: 将其对10取余操作,获取的余数即为当前位的数字 然后再除以10,继续对其进行1 ...
题目 链接 LeetCode 1137[第N个泰波那契数] 详情 实例 实例1 实例2 提示 题解 思路一[递归] 当 n 为 0, 1, 2 时,直接返回对应的值 当 n 大于 2 时,开始用 f(n+3) = f(n) + f(n+1) + f(n+2) 来递归求值 代码一[此代码在力扣会超出时 ...
题目 链接 LeetCode3270[求出数字答案] 详情 实例 实例1 实例2 实例3 提示 题解 思路 先依次取出 num1,num2,num3 的每位的位数 取最高位的时候,用数字除以1000,然后取10的余数 取第三位的时候,用数字除以100,然后取10的余数 取第二位的时候,用数字除以10 ...
组合基础与数论基础 组合数 Lucas 定理 \[\forall n,m,\in\mathbb{N},n\geq m,p\in\mathbb{P}, \binom{n}{m} \equiv \binom{\lfloor n/p\rfloor}{\lfloor m/p\rfloor} \binom{n ...
图遍历分为深度优先遍历(DFS)和广度优先遍历(BFS),DFS一直往下走直到没路再返回,BFS先走所有路一步。文章还介绍了以邻接矩阵存储无向图的实现方法,包括定义、初始化、获取点数量等操作。 ...
DP的经典例题,适合学完导弹拦截后再来学习 \(\\\) P1439 【模板】最长公共子序列 O(\(N^2\)) 按照DP常规思考方法 我们令dp[i][j]为P1序列前i个子序列和P2序列前j个子序列的最长公共子序列长度 注意,这是一种常见的设dp状态的方式,可以积累) 所以我们进而思考状态转移 ...
Shichikuji and Power Grid 题意还是很简单,每个点有点权,每个点之间也有边权 求最小生成森林,每个一颗最小生成树的权值等于边权+最小点权 思路 边权我们很好处理,有模板,但如何处理这个点权,便成了主要的问题 如果我们以边权的思路思考点权,那么点权就是某个点从到该点的边权 而我 ...
省流版 A. 判断奇偶性即可 B. 根据余数计算偏移天数即可 C. 用map记录每个数出现的位置即可 D. 枚举起点,枚举每步的方向,朴素搜索即可 E. 考虑前缀和的两数相减代替区间和的情况,减为负数则加回正数,用树状数组维护减为负数的情况数 F. 枚举点,作为连边的俩个点的lca,考虑维护路径点度 ...
学习复杂数据结构图,回顾线性表、树结构,图结构多对多关系更复杂。图由点集和边集组成,分类无向图、有向图、带权图。存储方式有邻接矩阵、邻接表、逆邻接表、十字链表。 ...
基环树,也是环套树,简单地讲就是树上在加一条边。它形如一个环,环上每个点都有一棵子树的形式。因此,对基环树的处理大部分就是对树处理和对环处理。显然,难度在于后者。 找环 这是几乎所有基环树处理的第一步。扣环的方法多种多样,各有千秋,反正都是O(n)的。这里贴一下本人扣环的代码。这个东西,稍微博采众长 ...
本文介绍散列表代码实现,使用取模方式构建散列函数,实现链式法和开放寻址法(线性探测)解决碰撞,包含初始化、插入、删除、查找等功能,并实现了再散列方法,代码已上传至代码库。 ...