自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 动态规划总结

1.动态规划是什么:动态规划是解决多阶段决策问题的一种方法。2.动态规划的思想是:在做每一步决策时,列出各种可能的局部解依据某种判定条件,舍弃那些肯定不能得到最优解的局部解。以每一步都是最优的来保证全局是最优的。3.动态规划问题的一般解题步骤:判断问题是否具有最优子结构性质,若不具备则不能用动态规划。把问题分成若干个子问题(分阶段)。建立状态转移方程(递

2016-05-31 21:50:42 374

原创 动态规划 problem S

1.简单题意这是一个典型的背包问题,就是一个学院要分开,有不同的价值的设备,需要分给两个学院,尽量公平2.解题思路我们需要将总和平分,然后就是一个很正常的01背包问题,套入公式就可3.感想问题不可能很简单的套公式,我们可以对其进行转化,然后再解4.ac代码#include #include #include#include using namespac

2016-05-31 21:45:55 240

原创 动态规划 problem Q

1.简单题意这是一个背包问题,就是给定一个背包的体积,然后给出几样物品的价值和体积,求出背包的最大价值2.解题思路动态规划,动态方程是f【v】=max{f[v],f[v-c[i]+w[i]]};c是体积,w是价值3.感想可以用背包解,但是不如动态规划简单,用最快方式解题才是正道4.ac代码#include #include #include #include

2016-05-29 23:41:18 219

原创 动态规划 problem L

1.简单题意求在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.2.解题思路通过找规律,可以发现规律 a[1]=1,a[2]=2,a[n]=a[n-1]+a[n-2](n>2),但是这个题不止这么简单,因为后面输入的数太大,int和long类型都不行,我尝试用long long 类型,但是我的这个IDE不支持,所以用的——int64数组,但是,

2016-05-22 10:59:35 194

原创 动态规划 problem N

1.简单题意我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,我们需要输入一个数得到有几个平面2.解题思路这个题没有用到递归,只需要方程result=2*n*n-n+1,就可以得到结果3.感想本来以为会用到递归方面的知识,所以浪费了比较久的时间,所以不应

2016-05-22 10:23:58 216

原创 动态规划 problem K

1.简单题意有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。其中,蜂房的结构如下所示。2.解题思路通过找规律发现这是一个斐波那次数列,这个题简单,但是还有陷阱,到最后的数据非常大,用int数组没法输出正确答案,所以我用的是long long数组3.感想开始一直报错,我以为是程序的错误,后来发现不是,通过输出数组数据,发现数

2016-05-09 22:17:32 263

原创 动态规划 problem o

1.简单题意把一个十进制数转化成二进制数2.解题思路和正常的转化成二进制一样,就是用十进制数除以2,除不尽就把1加进数组,除尽就把0加进去3.感想很简单4.AC代码 #include #include using namespace std; void basetwo(int n) { vecto

2016-05-09 21:09:14 170

原创 动态规划 problem P

1.简单题意在一无限大的二维平面中,我们做如下假设:1、每次只能移动一格;2、不能向后走(假设你的目的地是“向上”,那么你可以向左走,可以向右走,也可以向上走,但是不可以向下走);3、走过的格子立即塌陷无法再走第二次;求走n步不同的方案数(2种走法只要有一步不一样,即被认为是不同的方案)。2,解题思路我们可以看出来这个动态规划方程是f(1)=3,f(2)=7,f(i)=f(i-1)*2

2016-05-09 12:08:10 358

原创 动态规划 Problem M

1.简明题意有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?2.解题思路和problem j思路一样,不过方程成为了分f(1)=1,f(2)=2,f(3)=3,f(i)=f(i-3)+f(i-1)3.感想同problem j4.AC代码#includeusing namespace

2016-05-08 21:58:19 188

原创 动态规划 problem J

1.简单题意有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?2.解题思路这是一道经典的动态规划题,方程是f(1)=1,f(i)=f(i-1)+f(i-2),其实就是斐波那次数列的一种,求得时候注意层数和楼梯数的关系。3.感想复杂的题目可能解答方法并不难4.AC代码#includeusing namespace std;in

2016-05-08 21:53:25 176

原创 动态规划 problem F

1.简单题意有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?2.解题思路此题采用动态规划从自底向上计算,如果我们要知道所走之和最大,那么最后一步肯定是走最后排数其中一个,向上退,倒数第二步肯定走最后排数对应的倒数第二排最大的一个(将最后对应最后步走的最大的数加起来存在倒数第二步的数组中:不理解的话先看思路在看程序),再向上推,一直推到

2016-05-07 22:30:18 237

原创 动态规划 Problem C

1.简单题意这道题要求的是最长上升子序列的和。2.解题思路用一个sum数组存储子问题的解。(sum对应的下标 i 表示,从0到i,最长上升子序列的和。)从头开始,遍历每一个数,开始第一重循环。对每一个数,又从头遍历到这个数的前一个数,这是第二重循环,在第二重循环中,用下标j表示当前遍历到的数,如果data[i]>data[j],则说明data[j]和data[i]能构成一个上升子序

2016-05-05 17:30:42 152

原创 动态规划 Problem A

1.简单题意给出一个数列a[1],a[2],a[3].a[n],你的工作是计算这个子数列的最大和.例如,给出数列(6,-1,5,4,-7),那么这个数列的最大和就是6 + (-1) + 5 + 4 = 14.2.解题思路这是利用动态规划求最大子串和的问题, 本题的子问题是:dp[i] 代表前i个数中最大子串的和 ; 通过递归或递推求出子问题的最优解。 本题中的状

2016-05-05 17:09:18 212

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除