- 博客(6)
- 收藏
- 关注
原创 动态规划:击鼓传花
问题描述学校联欢晚会的时候,为了使每一个同学都能参与进来,主持人常常会带着同学们玩击鼓传花的游戏。游戏规则是这样的:n个同学坐着围成一个圆圈,指定一个同学手里拿着一束花,主持人在旁边背对着大家开始击鼓,鼓声开始之后拿着花的同学开始传花,每个同学都可以把花传给自己左右的两个同学中的一个(左右任意),当主持人停止击鼓时,传花停止,此时,正拿着花没传出去的那个同学就要给大家表演一个节目。聪明的小赛提出一个
2017-04-25 19:19:03
1532
原创 动态规划:最长公共子序列
问题描述一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X={x1,x2,⋯,xm}X = \{x_1, x_2, \cdots, x_m\} , 则另一序列Z={z1,z2,⋯,zk}Z = \{z_1, z_2, \cdots, z_k\}, 是X的子序列是指存在一个严格递增下标序列{i1,i2,⋯,ik}\{i_1, i_2, \cdots, i_k\},
2017-04-18 18:24:37
806
原创 动态规划:乘积最大
问题描述有一个整数n,将n分解成若干个不同自然数之和,问如何分解能使这些数的乘积最大,输出这个乘积m动态规划根据题意,对于一个整数n,必然存在一个整数x,使得从n中分解出整数x可以使其最后获得最大乘积,这要求对n-x的分解也是最优解。我们用dp[i][j]表示从整数i分解出整数j的这种情况下,能达到的最大乘积。那么dp[i][j]可以递归的定义为 dp[i][j]={1max(dp[i−j][k]
2017-04-12 18:31:46
4134
原创 合并排序算法
算法思想合并排序算法是用分治策略实现对n个元素进行排序的算法。其基本思想是:将待排序元素分成大小大致相同的两个子集合,分别对两个子集合进行排序,最终将排好序的子集合合并成所要求的排好序的集合。合并算法可递归描述如下:void MergeSort(int a[], int left, int right){ if (left < right) { //至少还有两个元素
2017-04-09 09:37:35
1571
原创 动态规划:考试通过概率
问题描述小明同学要参加一场考试,考试一共有n道题目,小明必须做对至少60%的题目才能通过考试。考试结束后,小明估算出每题做对的概率,p1,p2,…,pn。你能帮他算出他通过考试的概率吗?输入输出要求输入: 输入第一行一个数n(1<=n<=100),表示题目的个数。第二行n个整数,p1,p2,…,pn。表示小明有pi%的概率做对第i题。(0<=pi<=100) 输出: 小明通过考试的概率,最后结
2017-04-08 16:08:52
2731
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅