上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 42 下一页
摘要: 思路:若用dp[i][j]表示走到(i,j)的最大值,那么dp[i][j] = max(dp[i - 1][j],dp[i][j - 1],dp[i - 1][j - 1] + v),显然O(n^2)超时。但是我们可以优化这个dp,我们用f[j]表示第i行第j列当前最大值,那么f[j] = max( 阅读全文
posted @ 2018-08-27 10:28 KirinSB 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 思路:维护一个递增队列,如果当天的w比队首大,那么我们给收益增加 w - q.top(),这里的意思可以理解为w对总收益的贡献而不是真正获利的具体数额,这样我们就能求出最大收益。注意一下,如果w对收益有贡献,你会发现w入队了两次,这是因为这里的w可能会有两种可能: 1.当做中间价/最终卖出价 2.买 阅读全文
posted @ 2018-08-26 11:25 KirinSB 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 思路:这题好像以前有类似的讲过,我们把等式移一下,变成 -(a1*x1^3 + a2*x2^3)== a3*x3^3 + a4*x4^3 + a5*x5^3,那么我们只要先预处理求出左边的答案,然后再找右边是否也能得到就行了,暴力的复杂度从O(n^5)降为O(n^3 + n^2)。因为左式范围-12 阅读全文
posted @ 2018-08-24 18:01 KirinSB 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 题意:问你是否有一条直线满足这条直线上的点个数与总个数之比不小于p 思路:解法太暴力了,直接随机取两个数,如果能满足条件就输出可以,否则不行。证明一下为什么可以随机化,题目给出可能有P >=20的点在线上,假设最惨的情况P = 20,有100个点,所以我们选一次选不到这条直线的概率为 1 - (20 阅读全文
posted @ 2018-08-24 16:19 KirinSB 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个串k,进行两个操作: “1 a b”:把a位置的字母换成b “2 l r s”:求l到r有多少个字母和s匹配,匹配的条件是这样:从l开始无限循环s形成一个串ss,然后匹配ss和指定区间的匹配个数,如图。 思路:用树状数组预处理。因为模板串是不断重复循环的,所以我们可以一个位置一个位置求 阅读全文
posted @ 2018-08-24 14:51 KirinSB 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 题意:在n*m方格中找有几个x*y矩阵。 思路:二维hash,总体思路和一维差不太多,先把每行hash,变成一维的数组,再对这个一维数组hash变成二维hash。之前还在想怎么快速把一个矩阵的hash算出来,然后看到是尺取,也不知道是什么...这应该算是用到了这个思想吧。 要先预处理每行y个的has 阅读全文
posted @ 2018-08-23 19:48 KirinSB 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 思路:给你字符串,如果他包含至少两个长度大于等于3的回文,并且这些回文不能嵌套(例如aaa嵌套在aaaa,waw嵌套在awawa),如果这个字符串这么牛逼的话,就输出他。 思路:拿到字符串先正序hash和逆序hash,用来判断回文串。这里其实只要判断长度为3和4的回文就行,因为3,4大的可以嵌套在比 阅读全文
posted @ 2018-08-23 16:33 KirinSB 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 题意:给出两个字符串的最大相同前缀。 思路:hash是要hash,不hash是不可能的。hash完之后从头遍历判断超时然后陷入沉默,然后告诉我这能二分orz,二分完就过了,写二分条件写了半天。不要用数组储存hash值,会爆,开vector就行。 代码: 阅读全文
posted @ 2018-08-23 15:27 KirinSB 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 题意:问你最少加几个字母使所给串变成回文串。 思路:一开始打算将正序和逆序都hash,然后用提取前缀后缀的方法来找,但是RE了,debug失败遂弃之。后来发现可以直接hash,一边hash一边比较。我们只需找出正序hash值和逆序hash相同的最长串就是最长回文子串。 代码: 阅读全文
posted @ 2018-08-23 14:35 KirinSB 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 题意:给你个n*m的矩阵,要求你找到一个k,k > 1,使得矩阵可以分为很多k * k的小正方形,然后进行操作把每个小正方形都变为0或1,问你怎样使操作数最小。 思路:随便暴力不可取,显然你每次遍历查找k * k正方形里1和0的数量会超时。这里新学了一招前缀和,其实和二位树状数组差不多。就是预处理前 阅读全文
posted @ 2018-08-22 21:32 KirinSB 阅读(341) 评论(0) 推荐(0) 编辑
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 42 下一页