10 2019 档案

摘要:描述 【题解】 尺取法 对于[l..r]这段 如果新加进来的s[r]有和之前的重复。 那么就不用重新开始了。 直接递增左区间。 让这段没有重复数字了再说。 然后再把s[r]加进去。 【代码】 cpp class Solution { public: int lengthOfLongestSubstr 阅读全文
posted @ 2019-10-31 22:30 AWCXV 阅读(99) 评论(0) 推荐(0) 编辑
摘要:描述 【题解】 用个map的话就是O(N)级别的了。 【代码】 cpp class Solution { public: unordered_map mymap; vector twoSum(vector& nums, int target) { int len = nums.size(); vec 阅读全文
posted @ 2019-10-31 22:06 AWCXV 阅读(145) 评论(0) 推荐(0) 编辑
摘要:描述 【题解】 模拟高精度的加法。 用x来记录前面的进位就好。 【代码】 阅读全文
posted @ 2019-10-31 21:51 AWCXV 阅读(131) 评论(0) 推荐(0) 编辑
摘要:´问题描述: 给定一个由 n 行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径,使该路径经过的数字总和最大。 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 ´编程任务: 对于给定的由 n 行数字组成的数字三角形,编程计算从三角形的顶至底的路径经过的数 阅读全文
posted @ 2019-10-13 10:52 AWCXV 阅读(445) 评论(0) 推荐(0) 编辑
摘要:´问题描述: 在一个圆形操场的四周摆放着 n 堆石子。现要将石子有次序地合并成一堆。规定每次只 能选相邻的 2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一 个算法,计算出将 n 堆石子合并成一堆的最小得分和最大得分。 ´编程任务: 对于给定 n 堆石子,编程计算合并成一堆的 阅读全文
posted @ 2019-10-13 10:42 AWCXV 阅读(695) 评论(0) 推荐(0) 编辑
摘要:问题描述: 在一台超级计算机上,编号为1,2, ,  n 的 n 个作业等待批处理。批处理的任务就是将 这 n 个作业分成若干批,每批包含相邻的若干作业。从时刻 0 开始,分批加工这些作业。在 每批作业开始前,机器需要启动时间 S ,而完成这批作业所需的时间是单独完成批中各个作 业需要时间的总和 阅读全文
posted @ 2019-10-13 10:01 AWCXV 阅读(1426) 评论(0) 推荐(0) 编辑
摘要:´问题描述: 用 2 台处理机 A 和 B 处理 n 个作业。设第 i 个作业交给机器 A 处理时需要时间 i a ,若 由机器 B 来处理,则需要时间 i b 。由于各作业的特点和机器的性能关系,很可能对于某些 i, 有 i i a ³ b ,而对于某些 j,j≠i,有a j 【题解】 设f[i] 阅读全文
posted @ 2019-10-12 10:40 AWCXV 阅读(1606) 评论(0) 推荐(1) 编辑
摘要:描述 【题解】 设f[i][j]表示前i个数字分成了j段的最大子段和。 则f[i][j] = max(f[i 1][j]+a[i] (第i个数字和第j段合在一起),f[k][j 1]+a[i] (第i个数字作为第j段的第一个数字,同时在j 1段的情况中找到和最大的那个)) 这样的时间复杂度是$O(m 阅读全文
posted @ 2019-10-10 16:36 AWCXV 阅读(380) 评论(0) 推荐(0) 编辑
摘要:问题描述: 设 n 是一个正整数。2´n 的标准 2 维表是由正整数 1,2,…,2n 组成的 2´n 数组,该 数组的每行从左到右递增,每列从上到下递增。2´n 的标准 2 维表全体记为 Tab(n)。例如, 当 n=3 时 Tab(3)如下: 1 2 3 1 2 4 1 2 5 1 3 4 1 阅读全文
posted @ 2019-10-09 10:47 AWCXV 阅读(634) 评论(0) 推荐(0) 编辑
摘要:´问题描述: n 个元素的集合{1,2,, n }可以划分为若干个非空子集。例如,当 n=4 时,集合{1,2, 3,4}可以划分为 15 个不同的非空子集如下: {{1},{2},{3},{4}}, {{1,2},{3},{4}}, {{1,3},{2},{4}}, {{1,4},{2},{3} 阅读全文
posted @ 2019-10-09 09:40 AWCXV 阅读(1674) 评论(0) 推荐(0) 编辑
摘要:问题描述: n 个元素的集合{1,2,, n }可以划分为若干个非空子集。例如,当 n=4 时,集合{1,2, 3,4}可以划分为 15 个不同的非空子集如下: {{1},{2},{3},{4}}, {{1,2},{3},{4}}, {{1,3},{2},{4}}, {{1,4},{2},{3}} 阅读全文
posted @ 2019-10-08 16:43 AWCXV 阅读(1101) 评论(0) 推荐(0) 编辑
摘要:问题描述: n 个元素{1,2,, n }有 n!个不同的排列。将这 n!个排列按字典序排列,并编号为 0,1,…, n! 1。每个排列的编号为其字典序值。例如,当 n=3 时,6 个不同排列的字典序值如下: 字典序值 0 1 2 3 4 5 排列 123 132 213 231 312 321 阅读全文
posted @ 2019-10-08 15:52 AWCXV 阅读(646) 评论(0) 推荐(0) 编辑
摘要:´问题描述: 设 R={ n r ,r , ,r 1 2  }是要进行排列的 n 个元素。其中元素 n r ,r , ,r 1 2  可能相同。试设计 一个算法,列出 R 的所有不同排列。 ´编程任务: 给定 n 以及待排列的 n 个元素。计算出这 n 个元素的所有不同排列。 ´数据输入: 由文 阅读全文
posted @ 2019-10-08 09:56 AWCXV 阅读(1123) 评论(0) 推荐(0) 编辑
摘要:´问题描述: 给定一个自然数 n,由 n 开始可以依次产生半数集 set(n)中的数如下。 (1) n∈set(n); (2) 在 n 的左边加上一个自然数,但该自然数不能超过最近添加的数的一半; (3) 按此规则进行处理,直到不能再添加自然数为止。 例如,set(6)={6,16,26,126,3 阅读全文
posted @ 2019-10-07 10:23 AWCXV 阅读(484) 评论(0) 推荐(0) 编辑
摘要:´问题描述: 给定一个自然数 n,由 n 开始可以依次产生半数集 set(n)中的数如下。 (1) n∈set(n); (2) 在 n 的左边加上一个自然数,但该自然数不能超过最近添加的数的一半; (3) 按此规则进行处理,直到不能再添加自然数为止。 例如,set(6)={6,16,26,126,3 阅读全文
posted @ 2019-10-07 09:47 AWCXV 阅读(360) 评论(0) 推荐(0) 编辑
摘要:描述 【题解】 unordered_map跟直接用数组差不多。 【代码】 阅读全文
posted @ 2019-10-07 09:32 AWCXV 阅读(193) 评论(0) 推荐(0) 编辑
摘要:描述 【题解】 用矩阵乘法加速递推 [0 1] [1 1] [f[n 1]] [f[n 2]] = [f[n 1]] [f[n]] 求A矩阵的n 2次幂然后再乘B矩阵。 结果矩阵中的第二行第一列就是f[n]的结果了 【代码】 cpp include include define ll long lo 阅读全文
posted @ 2019-10-06 15:14 AWCXV 阅读(284) 评论(0) 推荐(0) 编辑
摘要:一颗二叉树,其左右子树都空,或都不空,则为“严格二叉树”,用先序遍历 和后序遍历能确定一颗严格二叉树,二叉树的前序序列为 ABDECFHIGJLKMN,后序序列为 DEBHIFLJMNKGCA. 然后输出其中序遍历 【题解】 主要就是根据这个二叉树的特点写个递归就好。 因为如果有左子树一定有右子树。 阅读全文
posted @ 2019-10-05 20:10 AWCXV 阅读(773) 评论(0) 推荐(0) 编辑
摘要:给你二维平面上的n个点,让你求出其中最近的点对。 【题解】 这是一个分治的问题。 可以这样做: 首先将n个点按照x升序排。 然后将l..r这个区间内的点分成 l..mid和mid+1..r两个部分递归求解。 分别求出这两段里面的点的最近点对的距离d1和d2 然后令d = min(d1,d2) 这是最 阅读全文
posted @ 2019-10-04 17:15 AWCXV 阅读(297) 评论(0) 推荐(0) 编辑
摘要:描述 【题解】 把第一个数字作为基准,然后把[l+1,r]进行划分. 找到最大的j,使得a[j]之后就能用Type代替任意类型了(传进来什么都可以) 【代码】 cpp include include using namespace std; const int N = 1e5; int n; int 阅读全文
posted @ 2019-10-03 21:07 AWCXV 阅读(135) 评论(0) 推荐(0) 编辑
摘要:描述 【题解】 让区间的长度L为1,2,4,...2^(n 1) 然后对每个位置i开始的长度为L的区间归并有序,用归并排序的方法就好,然后i跳转到i+L 复杂度仍然是log2(n) n级别的,注意写的时候的一些细节。 比如一定要让最后L =n的情况进行过一次,不然无法保证整个序列是有序的 【代码】 阅读全文
posted @ 2019-10-03 20:36 AWCXV 阅读(263) 评论(0) 推荐(0) 编辑
摘要:描述 【题解】 之前写过一次详解:https://www.cnblogs.com/AWCXV/p/11395875.html 【代码】 阅读全文
posted @ 2019-10-03 14:41 AWCXV 阅读(233) 评论(0) 推荐(0) 编辑
摘要:3 = 1 + 1 +1 3 = 2 + 1 3 = 3 则q(n,m)表示n的划分中最大值不超过m的方案书,q(3,3)=3. 【题解】 q(n,m)=q(n m,m)+q(n,m 1);//放一个m在开头+不放m在开头然后尝试f(n,m)=0 ② ①在②前。 【代码】 cpp include d 阅读全文
posted @ 2019-10-03 09:02 AWCXV 阅读(156) 评论(0) 推荐(0) 编辑
摘要:输入n个数字,输出它的所有排列 【题解】 总体的思路就是先产生一个数字的排列 ① 从后面n 1个数字中挑一个数字到第一个位置上替换它(n 1)个方案. ②生成后面n 1数字的排列。 一直重复这个两个步骤就可以了 (感觉是比之前那种flag[]数组法好用的方法) 【代码】 阅读全文
posted @ 2019-10-02 22:07 AWCXV 阅读(150) 评论(0) 推荐(0) 编辑
摘要:´问题描述: 最大间隙问题:给定 n 个实数 n x , x , , x 1 2  ,求这 n 个数在实轴上相邻 2 个数之间的最 大差值。假设对任何实数的下取整函数耗时O(1) ,设计解最大间隙问题的线性时间算法。 ´编程任务: 对于给定的 n 个实数 n x , x , , x 1 2  , 阅读全文
posted @ 2019-10-02 17:30 AWCXV 阅读(478) 评论(0) 推荐(0) 编辑
摘要:问题描述: 有m ´ n(m £ 100,n £ 100) 个金币在桌面上排成一个m 行 n 列的金币阵列。每一枚金 币或正面朝上或背面朝上。用数字表示金币状态,0 表示金币正面朝上,1 表示背面朝上。 金币阵列游戏的规则是: (1)每次可将任一行金币翻过来放在原来的位置上; (2)每次可任选 2 阅读全文
posted @ 2019-10-02 08:44 AWCXV 阅读(596) 评论(0) 推荐(0) 编辑
摘要:´问题描述: 在数据加密和数据压缩中常需要对特殊的字符串进行编码。给定的字母表 A 由 26 个小 写英文字母组成 A={a,b,…,z}。该字母表产生的升序字符串是指字符串中字母按照从左到 右出现的次序与字母在字母表中出现的次序相同,且每个字符最多出现 1 次。例如, a,b,ab,bc,xyz 阅读全文
posted @ 2019-10-01 16:49 AWCXV 阅读(871) 评论(0) 推荐(0) 编辑
摘要:´问题描述: 一本书的页码从自然数 1 开始顺序编码直到自然数 n。书的页码按照通常的习惯编排, 每个页码都不含多余的前导数字 0。例如,第 6 页用数字 6 表示,而不是 06 或 006 等。数 字计数问题要求对给定书的总页码 n,计算出书的全部页码中分别用到多少次数字 0,1, 2,…,9。 阅读全文
posted @ 2019-10-01 16:29 AWCXV 阅读(639) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示