#include<iostream>
#include<vector>
using namespace std;
class Backpack
{
public:
int maxValue(vector<int> w, vector<int> v, int n, int cap)
{
int **dp=new int*[n];
for(int i=;i<n;i++)
dp[i]=new int[cap+]();
for(int i=;i<n;i++)
dp[i][]=;
for(int i=;i<cap+;i++)
{
if(i>=w[])
dp[][i]=v[];
else
dp[][i]=;
}
for(int i=;i<n;i++)
for(int j=;j<cap+;j++)
{
if((j-w[i])>=)
dp[i][j]=max(dp[i-][j],dp[i-][j-w[i]]+v[i]);
else
dp[i][j]=dp[i-][j];
}
int res=dp[n-][cap];
for(int i=;i<n;i++)
delete []dp[i];
delete []dp;
return res;
}
}; int main()
{
int a[]={,,,,,,,};
int b[]={,,,,,,,};
vector<int> arr(a,a+);
vector<int> brr(b,b+);
Backpack B;
cout<<B.maxValue(arr,brr,,);
return ;
}

#include<iostream>
#include<vector>
using namespace std;
class LCS {
public:
int findLCS(string A, int n, string B, int m)
{
int **dp=new int*[n];
for(int i=;i<n;i++)
dp[i]=new int[m];
for(int i=,temp=;i<n;i++)
{
if(B[]==A[i])
temp=;
dp[i][]=temp;
}
for(int i=,temp=;i<m;i++)
{
if(A[]==B[i])
temp=;
dp[][i]=temp;
}
for(int i=;i<n;i++)
for(int j=;j<m;j++)
{
//选择三种情况中dp[i][j]最大的
int m=max(dp[i-][j],dp[i][j-]);
if(A[i]==B[j])
m=max(dp[i-][j-]+,m);
dp[i][j]=m;
}
return dp[n-][m-];
}
}; int main()
{
string A="1A2C3D4B56",B="B1D23CA45B6A";
LCS f;
cout<<f.findLCS(A,,B,);
return ;
}

#include<iostream>
#include<vector>
using namespace std;
class LongestIncreasingSubsequence {
public:
int getLIS(vector<int> A, int n)
{
int *dp=new int[n],res=;
dp[]=;
for(int i=;i<A.size();i++)
{
int max=,j=;
while(j<i)
{
if(A[j]<A[i]&&dp[j]>max)
max=dp[j];
j++;
}
dp[i]=max+;
}
for(int i=;i<A.size();i++)
if(res<dp[i])
res=dp[i];
return res;
}
};

#include<iostream>
#include<vector>
using namespace std;
class MinimumPath {
public:
int getMin(vector<vector<int> > map, int n, int m)
{
int **dp=new int *[n];
for(int i=;i<n;i++)
dp[i]=new int[m];
for(int i=;i<n;i++)
for(int j=;j<m;j++)
dp[i][j]=;
dp[][]=map[][];
for(int i=;i<n;i++)
dp[i][]=dp[i-][]+map[i][];
for(int i=;i<m;i++)
dp[][i]=dp[][i-]+map[][i];
for(int i=;i<n;i++)
for(int j=;j<m;j++)
dp[i][j]=min(dp[i-][j],dp[i][j-])+map[i][j];
return dp[n-][m-];
}
};

class GoUpstairs {
public:
int countWays(int n)
{
int *dp=new int[n];
dp[]=;
dp[]=;
for(int i=;i<n;i++)
dp[i]=(dp[i-]+dp[i-])%Mod;
return dp[n-];
}
};

#include<iostream>
#include<vector>
using namespace std;
//动态规划
class Exchange {
public:
int countWays(vector<int> penny, int n, int aim)
{
if(n==||aim<)
return ;
int **map=new int*[n];
for(int i=;i<n;i++)
map[i]=new int[aim+];
for(int i=;i<n;i++)
for(int j=;j<aim+;j++)
map[i][j]=-;
for(int i=;i<n;i++)
map[i][]=;
for(int i=;i<aim+;i++)
if(i%penny[]==)
map[][i]=;
else
map[][i]=;
for(int i=;i<n;i++)
for(int j=;j<aim+;j++)
if((j-penny[i])>=)
map[i][j]=map[i][j-penny[i]]+map[i-][j];
else
map[i][j]=map[i-][j];
return map[n-][aim];
} }; /*记忆搜索
class Exchange {
public:
int countWays(vector<int> penny, int n, int aim)
{
if(n==0||aim<0)
return 0;
int **map=new int*[n];
for(int i=0;i<n;i++)
map[i]=new int[aim+1];
for(int i=0;i<n;i++)
for(int j=0;j<aim+1;j++)
map[i][j]=-1;
return process(penny,0,aim,map); }
int process(vector<int> arr,int index,int aim,int **map)
{
int res;
if(arr.size()-1==index)
{
if(map[index][aim]==-1)
map[index][aim]=(aim%arr[index])?0:1;
return map[index][aim];
}
else
{
res=0;
int k=aim/arr[index];
for(int i=0;i<=k;i++)
{
if(map[index+1][aim-i*arr[index]]==-1)
map[index+1][aim-i*arr[index]]=process(arr,index+1,aim-i*arr[index],map);
res+=map[index+1][aim-i*arr[index]];
}
}
return res;
}
};*/ /*暴力搜索
class Exchange {
public:
int countWays(vector<int> penny, int n, int aim)
{
if(n==0||aim<0)
return 0;
return process(penny,0,aim); }
int process(vector<int> arr,int index,int aim)
{
int res;
if(arr.size()-1==index)
{
res=(aim%arr[index])?0:1;
return res;
}
else
{
res=0;
int k=aim/arr[index];
for(int i=0;i<=k;i++)
res+=process(arr,index+1,aim-i*arr[index]);
}
return res;
}
};*/ int main()
{
int a[]={,,};
vector<int> arr(a,a+);
Exchange e;
cout<<e.countWays(arr,,); return ;
}

class MinCost {
public:
int findMinCost(string A, int n, string B, int m, int c0, int c1, int c2) //c0²åÈ룬c1ɾ³ý£¬c2Ìæ»»
{
int **dp=new int*[n+];
for(int i=;i<n+;i++)
dp[i]=new int[m+];
for(int i=;i<n+;i++)
dp[i][]=i*c1;
for(int i=;i<m+;i++)
dp[][i]=i*c0;
for(int i=;i<n+;i++)
for(int j=;j<m+;j++)
{
int temp1=,temp2=,res;
temp1=min(dp[i][j-]+c0,dp[i-][j]+c1);
if(A[i-]==B[j-])
temp2=dp[i-][j-];
else
temp2=dp[i-][j-]+c2;
res=min(temp1,temp2);
dp[i][j]=res;
}
return dp[n][m];
}
};

最新文章

  1. 16SpringMvc_在业务控制方法中写入User,Admin多个模型收集参数——引出问题
  2. 20135202闫佳歆--week 8 实验:理解进程调度时机跟踪分析进程调度与进程切换的过程--实验及总结
  3. VMware虚拟机打开不了操作系统的解决方案
  4. MySql服务基础
  5. PHP项目中composer和Git的组合使用
  6. wpf4 文字 模糊 不清晰 解决方法
  7. Ember.js demo6
  8. suse系统FTP问题
  9. 收集统计信息让SQL走正确的执行计划
  10. jsoup_解析任意网站,做任意网站客户端
  11. 今天就这么乱糟糟的过啦~刚刚接触html,就稍微写了一下,明天加油,今天直接贴图
  12. Git客户端(Windows系统)的使用(Putty)(转)
  13. zookeeper 笔记-ACL
  14. 通用查询类封装之Mongodb篇
  15. 我的博客即将入驻&ldquo;云栖社区&rdquo;,诚邀技术同仁一同入驻。
  16. rabbitmq应用
  17. Tensorflow实战系列之二:
  18. selenium使用location定位元素坐标偏差
  19. L1-029 是不是太胖了
  20. org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named &#39;testService&#39; is defined

热门文章

  1. python将xml文件数据增强(labelimg)
  2. Appium 解决微信公众号、小程序切换 webview 后无法定位元素的问题
  3. MongoDB图形化工具(三)
  4. zz自动驾驶多传感器感知的探索
  5. 2019 SDN上机第五次作业
  6. VScode Python 虚拟环境
  7. Haproxy 构建负载均衡集群
  8. Paper | Non-Local ConvLSTM for Video Compression Artifact Reduction
  9. C++ 基于rapidjson对json字符串的进行序列化与反序列化
  10. Vue.js 源码分析(三十一) 高级应用 keep-alive 组件 详解