08 2019 档案
摘要:八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。 该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 解法:回溯法 维基百科的解法: 回溯法(非递归)
阅读全文
摘要:题目描述 给定一个字符串,求它的最长回文子串的长度。 最容易想到的办法是枚举所有的子串,分别判断其是否为回文。这个思路初看起来是正确的,但却做了很多无用功,如果一个长的子串包含另一个短一些的子串,那么对子串的回文判断其实是不需要的。 解法一 那么如何高效的进行判断呢?我们想想,如果一段字符串是回文,
阅读全文
摘要:分析:递归或者dp,爬楼梯很老的一道题目 当前台阶方法数 = 所有一次可到达当前台阶方法数的和 最初的题目是只能上1、2、3个台阶所以dp[i]+=dp[i-1]+dp[i-2]+dp[i-3]; 这个是1,2,4,8,16,32,就是2^n方,也就是只要t=i-2^n>=0,dp[i]+=dp[i
阅读全文
摘要:原文链接:https://blog.csdn.net/sodacoco/article/details/84798621 c++语言中,multiset是<set>库中一个非常有用的类型,它可以看成一个序列,插入一个数,删除一个数都能
阅读全文
摘要:分析:枚举a和b,在排序后的数组里二分查找c=-a-b。 注意:在找c的时候不能和a和b重复。 【参考代码】
阅读全文
摘要:分析:从题目中就可以看出这是一道找规律的题,不能直接硬算,数据太大1e9,你开数组就是找死。。。。 注意:n*m的矩阵和m*n的矩阵在这里是一样的,因为一个元素的最后状态只与与其相邻的元素有关(所以只讨论m>=n情况) 翻转次数 = 相邻元素数 + 1(自身翻转一次) 一般矩阵:位于中间的元素周围有
阅读全文
摘要:题目分析:假设一个人的物理攻击为A,法术攻击为B,如果进入阵营1贡献是A,如果进入阵营2贡献是B,进入阵营3贡献为(A+B)/2; 现在要考虑进入哪个阵营贡献最大就去哪个阵容,如果所有的人都是这么选择就可以得到全局的最大和。 比较常用的就是做差: 对阵营1的贡献 - 对阵营2的贡献 = A - B
阅读全文
摘要:分析:如果输入12345,移位分别得到:23451、34512、45123、51234、12345(重复),说明循环次数最多超过字符串长度就会重复 利用set的去重特性,和string的erase就可以轻松得到代码 c++代码如下:
阅读全文
摘要:题目描述(题目链接:https://www.luogu.org/problem/P1481) 风之子刚走进他的考场,就…… 花花:当当当当~~偶是魅力女皇——花花!!^^(华丽出场,礼炮,鲜花) 风之子:我呕……(杀死人的眼神)快说题目!否则……-_-### 花花:……咦好冷我们现在要解决的是魔族的
阅读全文
摘要:最长公共子序列(LCS)是一个在一个序列集合中(通常为两个序列)用来查找所有序列中最长子序列的问题。这与查找最长公共子串的问题不同的地方是:子序列不需要在原序列中占用连续的位置 。最长公共子序列问题是一个经典的计算机科学问题,也是数据比较程序,比如Diff工具,和生物信息学应用的基础。它也被广泛地应
阅读全文
摘要:维基百科:在计算机科学中,最大子数列问题的目标是在数列的一维方向找到一个连续的子数列,使该子数列的和最大。例如,对一个数列 −2, 1, −3, 4, −1, 2, 1, −5, 4,其连续子数列中和最大的是 4, −1, 2, 1, 其和为6。 时间复杂度:O(N^3) 最粗鲁的做法就是直接三重循
阅读全文
摘要:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合
阅读全文
摘要:题目描述 请编写一个算法,若N阶方阵中某个元素为0,则将其所在的行与列清零。 给定一个N阶方阵int[][](C++中为vector<vector><int>>)mat和矩阵的阶数n,请返回完成操作后的int[][]方阵(C++中为vector<vector><int>>),保证n小于等于300,矩
阅读全文
摘要:题目背景 IOI2000第一题 IOI2000第一题 题目描述(题目链接:https://www.luogu.org/problem/P1435) 回文词是一种对称的字符串。任意给定一个字符串,通过插入若干字符,都可以变成回文词。此题的任务是,求出将给定字符串变成回文词所需要插入的最少字符数。 比如
阅读全文
摘要:题目背景 张骞于公元前138年曾历尽艰险出使过西域。加强了汉朝与西域各国的友好往来。从那以后,一队队骆驼商队在这漫长的商贸大道上行进,他们越过崇山峻岭,将中国的先进技术带向中亚、西亚和欧洲,将那里的香料、良马传进了我国。每当人们凝望荒凉的大漠孤烟,无不引起对往日商贸、文化繁荣的遐想…… 张骞于公元前
阅读全文
摘要:题目描述(题目链接:https://www.luogu.org/problem/P1020) 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统
阅读全文
摘要:LIS定义LIS(Longest Increasing Subsequence)最长上升子序列 。一个数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN),我们可以得到一些上升的子序列(ai1, ai2, …, aiK),这
阅读全文
摘要:题目描述(题目链接:https://www.luogu.org/problem/P1091) NN位同学站成一排,音乐老师要请其中的(N-KN−K)位同学出列,使得剩下的KK位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,…,K1,2,…,K,他们的身高分别为T
阅读全文
摘要:next_permutation函数 组合数学中经常用到排列,这里介绍一个计算序列全排列的函数:next_permutation(start,end),和prev_permutation(start,end)。这两个函数作用是一样的,区别就在于前者求的是当前排列的下一个排列,后一个求的是当前排列的上
阅读全文
摘要:题目 对于一个给定的数组,在其中选取其子数组,要求相邻的元素不能选取,且要保证选出的子数组元素和最大。输入数组长度及其元素,输出所选子数组的和。 测试输入 7 4 2 6 1 3 5 8 测试输出 21 dp[i]代表到截至第i项的最大和(可能不包括第i项) 分析:对于任何一个dp问题,其都牵扯到选
阅读全文
摘要:题目描述 打开了美了么外卖,选择了一家店,你手里有一张满X元减10元的券,店里总共有n种菜,第i种菜一份需要A_i元,因为你不想吃太多份同一种菜,所以每种菜你最多只能点一份,现在问你最少需要选择多少元的商品才能使用这张券。 打开了美了么外卖,选择了一家店,你手里有一张满X元减10元的券,店里总共有n
阅读全文
摘要:小Q爬塔 题目描述: 小Q 正在攀登一座宝塔,这些宝塔很特别。塔总共有 n 层,但是每两层之间的净高却不相同,所以造成了小Q 爬过每层的时间也不同。如果某一层的高度为 x,那么爬过这一层所需的时间也是 x。小Q 还会使用一种魔法,每用一次就可 以让他向上跳一层或两层,但是每次跳跃后小 Q 都将用完魔
阅读全文
摘要:功能:输入一个数 然后进行因式分解 例如:90=2*3*3*5 c++代码: 改进后的c++代码:(在效率上较上个版本提高了不少)
阅读全文

浙公网安备 33010602011771号