动态规划
文章平均质量分 71
dashuxiaoai52613
这个作者很懒,什么都没留下…
展开
-
poj 1953
<br />解题思路:<br /> 题目要求的是,长度为n的01序列,没有相邻的两个1,这种序列有多少种。<br /> 使用递推来解决,设长度为n的没有相邻1的01序列总数为f[n]。假设序列中最后一个元素为0,则前面n-1个元素只要本身满足没有相邻的两个1就可以,所以最后一个元素为0的情况有f[n-1]种;若最后一个元素为1,则倒数第二个元素必须为0,则前面n-2个元素只要本身满足没有相邻的两个1就可以,所以最后一个元素为1的情况有f[n-2]种。综合这两种情况,得到递推公式f[n]=f[原创 2010-06-16 21:18:00 · 503 阅读 · 0 评论 -
poj 1163经典DP
DP(Dinamic Programming),即为动态规划。 应该来说DP算法在ACM中是比较常见,也是比较难的,当然,做多了就不觉得难了,这是一条亘古不变的自然规律。以前在做ACM题的时候,凡是看到DP就跳过,似乎是一种条件反射,追溯起来,是因为之前在学算法设计课程的时候写了一个矩阵相乘的程序,用的就是动态规划,当时觉得DP好烦哪,于是黑暗的种子算是在那会种下了,这颗种子生根发芽,一直在我身上根深缔固了好几年时间,可怕~~ 终于还是忍无可忍,决定攻克DP这座碉堡。 POJ上的1163原创 2010-06-16 19:58:00 · 305 阅读 · 0 评论 -
hdu2571命运
<br />#include<iostream>#include<algorithm>using namespace std;int a[25][1010];int max(int x,int y){ return x>y? x:y;}int main(){ int c,i,j,k,n,m,temp; cin>>c; while(c--) { cin>>n>>m; memset(a,原创 2010-08-19 17:23:00 · 1287 阅读 · 0 评论 -
poj2757最长上升子序列
思路: 找到子问题 ; 子问题:以每一个元素为终点计算前面有多少个比该元素小的数 一层一层的累加上去原创 2010-08-20 09:57:00 · 433 阅读 · 0 评论 -
Hdu1176免费馅饼,是一道典型的“数塔问题”。
<br />(一)问题要求:<br />(1)从位置5开始走。<br /> (2)第0和第10个位置只有两个方向可以走,除此之外,第x个位置每次只有三个方向可以走。<br /> (3) 问题要找到一条路径使得馅饼总数目最大。<br />(二)问题描述:<br />根据(一)(2)中的描述,可以联系“数塔问题”的求解方法。“从底到上”求出所有子问题的解,并改变原来数组。<br />数据类型的选择:f[t][x]--表示第t(0<t<100000)秒在第x(0<=x<=10)个位置掉下的馅饼数目。//f[0原创 2010-08-19 17:10:00 · 403 阅读 · 0 评论 -
hdu1231 最大子序列
思路: 如果是负数只会越加越小 出现一个正数马上begin end都指向它以上是我初次看到这个题目忧虑的地方 现在恍然大悟了原创 2010-08-19 23:51:00 · 299 阅读 · 0 评论 -
poj1661非常变态的题目 i 写成了k
#include #include #define N 1000#define INFINITE 1000000using namespace std;struct DATA{ int lx, rx, h;}data[N+10];int anltime[N+10], anrtime[N+10];int n, MAX;bool cmp(DATA a, DATA b){ if (a.h > b.h) return 1;原创 2010-08-21 11:44:00 · 496 阅读 · 1 评论