算法学习
Libra_YY
菜鸟写博客,只为了记录编程的成长。
展开
-
最长公共子序列(动态规划)
注意:1、字符串X和Y的下标范围是0~m-1和0~n-1,如果不在输入时做特殊处理的话(即:gets(X)),在LCSLength中判断条件就要改成x[i-1]==y[j-1],LCS中 cout<<x[i-1];不改的话,也能输出正确的长度主要是因为X,Y都是全局变量,默认初始化后XY里面全是0,所以X[m]==Y[n],事实就是如果你输入abcd abc,程序实际算...原创 2018-12-22 15:06:00 · 249 阅读 · 0 评论 -
最长递增子序列(动态规划)
#include<iostream>#include<algorithm>using namespace std;int dp[200];int ans=-1;//ans记录最大的dp[i] int LIS(int A[],int n){ for(int i=1;i<=n;i++) { dp[i]=1; for(int j=1;j<i;...原创 2018-12-22 11:12:39 · 204 阅读 · 0 评论 -
租用游艇问题(动态规划)
问题描述: 长江游艇俱乐部在长江设置了n个游艇出租站1,2,…n,游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站i到游艇出租站j之间的租金为r(i,j) ,1<=i<j<=n,设计一个算法,计算出从出租站1到出租站n所需要的最少租金。测试用例:3(站数)5 15(第一站到其他相应各站的租金)7(第二站到其他相应各站的租金)输...原创 2018-12-22 10:53:56 · 8520 阅读 · 0 评论 -
快速排序(递归与分治)
法一:#include<cstdio>#include<algorithm>using namespace std;int Partition(int A[],int left,int right){ int i=left,j=right+1;//注意j=right+1 int temp=A[left]; while(true) { while(A[...原创 2018-12-20 17:01:23 · 313 阅读 · 0 评论 -
活动安排问题(贪心算法)
#include<iostream>#include<cstring>#include<algorithm>using namespace std;int n;//n个活动 bool flag[100];struct activity{ int b; //活动开始时间 int e; //活动结束时间 }A[100];bool cmp(ac...原创 2018-12-22 17:20:20 · 1696 阅读 · 0 评论