oj
谦恭
偏向学术发展,不擅长工程项目
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
poj1458 最长公共子序列(lcs)
这个题目用dp 第一次做题目时候在dp方法中二重循环中,把i和j的初始设置为了1,但是在输入两个字符串的时候,char数组是从开始的,于是在判断 if(str1[i]==str[j])时候出错,应改正为if(str[i-1]==str[j-1]) 以下为从网页找到的一张图,侵删。 这个图就是lcs dp的主要思路。当str1[i-1]==str2[j-1]时,dp[i][j] = dp原创 2016-09-20 10:36:25 · 313 阅读 · 0 评论 -
poj1014多重背包
做这个题目的时候受到dp时取min还是max的影响,不知道最后该怎么做,看了大神的blog有了思路,直接粘贴代码了。 出处:http://blog.youkuaiyun.com/lyy289065406/article/details/6661449 優YoU的博客//Memory Time //656K 16MS /*多重背包+二进制优化*/ #include using namespace转载 2016-09-23 10:35:16 · 360 阅读 · 0 评论 -
01背包
今天做了一个很简单的dp题目,发现自己没什么思路,经过百度指点才发现是完全背包。然后开始重新补习了一下背包,从01开始整理吧。 0,1背包是放与不放两种状态,于是称作01. 题目: 有N件物品和一个容量为V的背包。放入第i件物品消耗的空间为Ci,得到的价值是Wi。求解将哪些物品放入背包可使价值总和最大。(blog主要给出求最大和的方法) 思路: F[原创 2016-09-20 23:33:43 · 341 阅读 · 0 评论 -
完全背包 poj1384
http://poj.org/problem?id=1384 #include #include #include using namespace std; int p[510]; int w[510]; int dp[10010]; int min(int a,int b){ return a<b?a:b; } int main(){ int T; scanf("%原创 2016-09-22 13:11:35 · 384 阅读 · 0 评论 -
poj 2533 最长递增子序列
题目很简单,要求输入一个int数列,输出最长递增子序列的长度。 方法为dp。以下为dp环节 for(int i=0;i dp[i] = 1; for(int j=0;j dp[i] = max(dp[i],dp[j]+1); } }#include int n; int arr[1005]; int ans[1005]; int max(in原创 2016-09-19 23:54:26 · 293 阅读 · 1 评论
分享