摘要: O(n2)tle。O(nlognlogn) 1421 最大MOD值 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 关注 1421 最大MOD值 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 阅读全文
posted @ 2016-09-15 14:14 BBChq 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 01背包tle。 解题报告(by System Message) 类似于背包的DP,以乘积为状态。先把等选数字里面不是K约数的去掉。然后找出K的约数,进行离散化。然后dp[i][j]表示前i个数字乘积为j的状态。Dp[i+1][j*a[i+1]]]+=dp[i][j].Dp[i+1][j]+=dp[ 阅读全文
posted @ 2016-09-15 14:10 BBChq 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 跟最大子矩阵差不多O(n3)扫一下。有更优写法?挖坑! 1158 全是1的最大子矩阵 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 关注 1158 全是1的最大子矩阵 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 11 阅读全文
posted @ 2016-09-15 14:05 BBChq 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 完全一脸懵逼!。dp[i][j]表示i,j为相邻的两项的最大值。两个指针两边扫的思想好劲啊这个!%%% 1055 最长等差数列 基准时间限制:2 秒 空间限制:262144 KB 分值: 80 难度:5级算法题 收藏 关注 1055 最长等差数列 基准时间限制:2 秒 空间限制:262144 KB 阅读全文
posted @ 2016-09-15 14:03 BBChq 阅读(549) 评论(0) 推荐(0) 编辑
摘要: QwX (题目提供者) QwX (题目提供者) QwX (题目提供者) 首先简化题目,题面的意思就是,当前有一个数s 操作1是s*=k代价为k,操作2是s--代价为1 求把s从1变到n的最小代价 做法1: 直接暴力记忆化搜索,F(i)表示从1到i用的最小操作数 则F(i)=min(F(i+1),mi 阅读全文
posted @ 2016-09-15 13:59 BBChq 阅读(642) 评论(0) 推荐(0) 编辑
摘要: 果断打表找规律。然后看得出来是2^k-1之后又不知道怎么求出k有什么卵用。。。 http://blog.csdn.net/guhaiteng/article/details/52094210 %%%%神犇的讲解非常详细! 1379 索函数 基准时间限制:1 秒 空间限制:131072 KB 分值:  阅读全文
posted @ 2016-09-15 13:56 BBChq 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 链剖即可。其实就是利用了链剖后子树都在一段连续的区间内所以可以做到O(logn)查询和修改。 线段树细节打错了。。要专心!肉眼差错都能找出一堆出来显然是不行的!。 1199 Money out of Thin Air 题目来源: Ural 基准时间限制:1 秒 空间限制:131072 KB 分值:  阅读全文
posted @ 2016-09-15 13:50 BBChq 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 看题解的。。。就是将必须要修改的数去掉后求最长的不递减子序列。 upper_bound+lower_bound要理解。有时候-1有时候不用是有原因的。 1294 修改数组 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 160 难度:6级算法题 收藏 关 阅读全文
posted @ 2016-09-15 13:46 BBChq 阅读(416) 评论(0) 推荐(0) 编辑
摘要: O(n2)显然超时。网上找的题解都是用奇怪的姿势写看不懂TAT。然后自己YY。要求a[i]之前最大的是多少且最大的有多少个。那么线段树维护两个值,一个是当前区间的最大值一个是当前区间最大值的数量那么我们可以做到O(logn)查询最大值和更新。 不过树状数组一直不怎么会用。。。 1376 最长递增子序 阅读全文
posted @ 2016-09-15 13:43 BBChq 阅读(715) 评论(0) 推荐(0) 编辑