? 先考虑如何判断一个询问集是否合法。 考虑询问一次$[l,r]$,能把$[1,l 1]∪[r+1,n]$和$[l,r]$区分开来。 现在定义一个块为一个没有被区分开极大的点集合。 当所有块的大小都是1的时候,这个方案就是合法。 ? 性质: 1.一个块是由若干连续段组成,比如下面这样: 111223 ...
分类:
其他好文 时间:
2020-03-28 23:33:05
阅读次数:
84
题目链接 http://bailian.openjudge.cn/practice/4131/ 解题分析 这是一个基础的01背包问题,使用动态规划来解决,因为题目中给的M,也就是背包最大容量比较大,使用二维数组可能会超内存,所以可以使用滚动数组的方法节省空间。 状态转移方程: dp[i][j] = ...
分类:
其他好文 时间:
2020-03-28 19:56:43
阅读次数:
75
题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 思路: 发波那契数列变形。 问题的解依赖子问题的解。同样用分治,或者bottom-up动态规划。 如果青蛙在第n级台阶上,那么它上一跳一定是在n-1, 或者n-2层台阶上。 ...
分类:
其他好文 时间:
2020-03-28 17:38:06
阅读次数:
83
LeetCode 0070. Climbing Stairs爬楼梯【Easy】【Python】【动态规划】 Problem "LeetCode" You are climbing a stair case. It takes n steps to reach to the top. Each tim ...
分类:
编程语言 时间:
2020-03-27 21:32:23
阅读次数:
84
LeetCode 面试题10 I. 斐波那契数列【剑指Offer】【Easy】【Python】【动态规划】 问题 "力扣" 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下: 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出 ...
分类:
编程语言 时间:
2020-03-27 18:33:36
阅读次数:
90
简介 欢迎来到zcr的博客。这里是一个免费开放且持续更新的知识整合处。 我为大家准备了竞赛中的基础知识、常见题型、解题思路以及常用工具等内容,帮助大家更快速深入地学习编程竞赛。 基础算法 搜索 数据结构 权值线段树 二叉查找树 数学 图论 字符串 马拉车 回文自动机 动态规划 ...
分类:
编程语言 时间:
2020-03-27 10:31:44
阅读次数:
75
解题思路: 状态f[i][j] 表示 s 的第 i 个字符到第 j 个字符组成的子串中,最长的回文序列长度是多少。 转移方程如果 s 的第 i 个字符和第 j 个字符相同的话f[i][j] = f[i + 1][j - 1] + 2如果 s 的第 i 个字符和第 j 个字符不同的话f[i][j] = ...
分类:
其他好文 时间:
2020-03-26 21:39:35
阅读次数:
66
大家想一想,spfa是从bfs演化过来的,dijkstra是贪心思想,由此可见,这些“高级”的最短路算法都是有基础算法演化得来的。 而我今天要说的算法就是由基础的动态规划演化出来的最短路算法-floyd 还有用一到题来开启今天的内容:GF和猫咪的玩具 题意分析:有n个圆环,将两个圆环用力拉可以将这两 ...
分类:
其他好文 时间:
2020-03-26 15:21:40
阅读次数:
100
一.问题 https://leetcode-cn.com/problems/nge-tou-zi-de-dian-shu-lcof/:面试题60:n个骰子的点数 二.解法 动态规划:用 dp[n][j] 来表示n个骰子的点数 j 出现的次数。 状态转移方程:表示n个骰子产生的点数 j 出现的次数等于 ...
分类:
其他好文 时间:
2020-03-26 01:26:22
阅读次数:
69
又是来自PTA的习题: 设计一个O(n2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。 输入格式: 输入有两行: 第一行:n,代表要输入的数列的个数 第二行:n个数,数字之间用空格格开 输出格式: 最长单调递增子序列的长度 输入样例: 输出样例: 解题思路: 定义一个dp数组,全部初始化 ...
分类:
其他好文 时间:
2020-03-25 23:16:00
阅读次数:
127