自定义博客皮肤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 405

原创 动态规划 problem S

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

2016-05-31 21:45:55 249

原创 动态规划 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 231

原创 动态规划 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 203

原创 动态规划 problem N

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

2016-05-22 10:23:58 230

原创 动态规划 problem K

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

2016-05-09 22:17:32 269

原创 动态规划 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 179

原创 动态规划 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 376

原创 动态规划 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 j 4.AC代码 #include using namespace

2016-05-08 21:58:19 217

原创 动态规划 problem J

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

2016-05-08 21:53:25 182

原创 动态规划 problem F

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

2016-05-07 22:30:18 248

原创 动态规划 Problem C

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

2016-05-05 17:30:42 164

原创 动态规划 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 221

空空如也

空空如也

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

TA关注的人

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