画房子类型题目

http://www.cnblogs.com/easonliu/p/4784858.html

很经典。

I是有三种颜色

II是有k种颜色

都是同样的思路,递归并且每次使用其他颜色的最小价格来更新当前颜色的最小价格。

II有一个优化,就是用了 min1和min2来分别记录从两个方向的最小值,用空间换时间。因为如果不这样,其实对于k里面的每个位置,都要遍历其他k-1个,那么其实复杂度就上升到k^2了。

但是使用了min1和min2,那么复杂度就维持在k这样的级别。

时间: 2024-10-19 09:39:52

画房子类型题目的相关文章

<LeetCode>动态规划——Two Sequences 类型题目

一.类型描述 Two Sequences 的题目一般会提供两个sequence,一般问最大/最小.true/false.count(*)这几类的问题. 其中,Two Sequences的动态规划题目的四要素: state:dp[i][j] 一般表示 第一个sequence的前i个字符 和 第二个sequence的前j个字符 怎么怎么样. Initialization: 这类型动态规划一般初始化dp数组的方式是根据题目的含义初始化第一行和第一列. function:解决动态规划的function问

Sum 类型题目总结

Sum类的题目一般这样: input: nums[], target output: satisfied arrays/ lists/ number 拿到题目,首先分析: 1. 是几个数的sum 2. sum是要求等于target还是小于还是大于还是closest 3. 返回的是原数组下标还是其他 对于这类题目,我们经常用双指针的方法.即排序后,左指针指向起点,右指针指向终点. 如果sum等于target,加入结果/总数目+1 如果sum大于target,右指针左移 如果sum小于target,

Permutation类型题目整理

1.permutations Given a list of numbers, return all possible permutations. For nums = [1,2,3], the permutations are: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 显然需要需要用递归来找所有的全排列.关于这个递归,是返回找到的值加入到上层还是在把参数传到递归层,在递归层进行更新处理.对于分治策略,二叉树的问题,很明显

整数划分类型题目

整数划分 --- 一个老生长谈的问题: 1) 练练组合数学能力. 2) 练练递归思想 3) 练练DP 总之是一道经典的不能再经典的题目: 这道好题求: 1. 将n划分成若干正整数之和的划分数. 2. 将n划分成k个正整数之和的划分数. 3. 将n划分成最大数不超过k的划分数. 4. 将n划分成若干奇正整数之和的划分数. 5. 将n划分成若干不同整数之和的划分数. 1.将n划分成不大于m的划分法:  1).若是划分多个整数可以存在相同的:  dp[n][m]= dp[n][m-1]+ dp[n-m

编辑距离Edit Distance 非常典型的DP类型题目

https://leetcode.com/problems/edit-distance/?tab=Description 真的非常好,也非常典型. https://discuss.leetcode.com/topic/17639/20ms-detailed-explained-c-solutions-o-n-space dp[i][0] = i; dp[0][j] = j; dp[i][j] = dp[i - 1][j - 1], if word1[i - 1] = word2[j - 1];

Array 数组类型题目笔记

将小数组归并到大数组里 Merge Sorted Array Given two sorted integer arrays A and B, merge B into A as one sorted array. Example A = [1, 2, 3, empty, empty], B = [4, 5] After merge, A will be filled as [1, 2, 3, 4, 5] 2点需要注意的: 1. inplace merge,从后往前走 2. 3个while 循环

整数划分类型题目--专练

1.NOI 8787:数的划分(将n划分成k个数的划分法) 总时间限制:  1000ms 内存限制:  65536kB 描述 将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序). 例如:n=7,k=3,下面三种分法被认为是相同的. 1,1,5: 1,5,1: 5,1,1: 问有多少种不同的分法. 输出:一个整数,即不同的分法. 输入 两个整数n,k (6 < n <= 200,2 <= k <= 6),中间用单个空格隔开. 输出 一个整数,即不同的分法. 样例输入 7

盖房子(house)

盖房子(house) 题目描述 FJ最近得到了面积为n*m的一大块土地,他想在这块土地上建造一所房子,这个房子必须膏形的.但是,这块土地并非十全十美,上面有很多不平坦的地方(也可以叫瑕疵).这些瑕疵十分以至于根本不能在上面盖一砖一瓦.他希望找到一块最大的正方形无瑕疵土地来盖房子.不过,不是什么难题,FJ在10分钟内就轻松解决了这个问题.现在,您也来试试吧. 输入 第1行为两个整数n,m(1≤n,m≤100).接下来n行,每行m个数字,用空格隔开.0表萄土地有瑕疵,1表示该块土地完好. 输出 一个

博弈论类题目小结——转载

出处http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove 首先当然要献上一些非常好的学习资料: 基础博弈的小结:http://blog.csdn.net/acm_cxlove/article/details/7854530 经典翻硬币游戏小结:http://blog.csdn.net/acm_cxlove/article/details/7854534 经典的删边游戏小结:http://blog.csdn.net/acm