#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];
}
};

dp的一些练习的更多相关文章

  1. BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]

    1911: [Apio2010]特别行动队 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 4142  Solved: 1964[Submit][Statu ...

  2. 2013 Asia Changsha Regional Contest---Josephina and RPG(DP)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4800 Problem Description A role-playing game (RPG and ...

  3. AEAI DP V3.7.0 发布,开源综合应用开发平台

    1  升级说明 AEAI DP 3.7版本是AEAI DP一个里程碑版本,基于JDK1.7开发,在本版本中新增支持Rest服务开发机制(默认支持WebService服务开发机制),且支持WS服务.RS ...

  4. AEAI DP V3.6.0 升级说明,开源综合应用开发平台

    AEAI DP综合应用开发平台是一款扩展开发工具,专门用于开发MIS类的Java Web应用,本次发版的AEAI DP_v3.6.0版本为AEAI DP _v3.5.0版本的升级版本,该产品现已开源并 ...

  5. BZOJ 1597: [Usaco2008 Mar]土地购买 [斜率优化DP]

    1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4026  Solved: 1473[Submit] ...

  6. [斜率优化DP]【学习笔记】【更新中】

    参考资料: 1.元旦集训的课件已经很好了 http://files.cnblogs.com/files/candy99/dp.pdf 2.http://www.cnblogs.com/MashiroS ...

  7. BZOJ 1010: [HNOI2008]玩具装箱toy [DP 斜率优化]

    1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 9812  Solved: 3978[Submit][St ...

  8. px、dp和sp,这些单位有什么区别?

    DP 这个是最常用但也最难理解的尺寸单位.它与“像素密度”密切相关,所以 首先我们解释一下什么是像素密度.假设有一部手机,屏幕的物理尺寸为1.5英寸x2英寸,屏幕分辨率为240x320,则我们可以计算 ...

  9. android px转换为dip/dp

    /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public int dipTopx(Context context, float dpValue) { final floa ...

  10. POJ 3254. Corn Fields 状态压缩DP (入门级)

    Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 9806   Accepted: 5185 Descr ...

随机推荐

  1. 剑指Offer-7.斐波那契数列(C++/Java)

    题目: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 分析: 斐波那契数列是0,1,1,2,3,5,8,13...也就是当前 ...

  2. go 学习笔记之环境搭建

    千里之行始于足下,开始 Go 语言学习之旅前,首先要搭建好本地开发环境,然后就可以放心大胆瞎折腾了. Go 的环境安装和其他语言安装没什么特别注意之处,下载安装包下一步下一步直到完成,可能唯一需要注意 ...

  3. Vue indent eslint缩进webstorm冲突解决

    参考教程 官方回复 ESlint设置 rules: { 'no-multiple-empty-lines': [1, {max: 3}], // 控制允许的最多的空行数量 'vue/script-in ...

  4. SQL查询--简单了解SQL(结构化查询语言)

    以下内容是从其他地方摘抄过来的哈,原文地址忘记了,当时把内容记在了笔记中 SQL分类: 数据查询语言(DQL) 数据定义语言(DDL) 数据操纵语言(DML) 数据控制语言(DCL) 1.数据查询语言 ...

  5. 【2019.8.9 慈溪模拟赛 T2】摘Galo(b)(树上背包)

    树上背包 这应该是一道树上背包裸题吧. 众所周知,树上背包的朴素\(DP\)是\(O(nm^2)\)的. 但对于这种体积全为\(1\)的树上背包,我们可以通过记\(Size\)优化转移时的循环上界,做 ...

  6. Excel日历控件实现下拉选取日期含VB代码实现

    以下是Excel2016通过安装控件,实现表格下拉选择日期的一些步骤: 知识准备工作:先了解下如何安装控件,这一部分很重要,excel选择可用宏https://jingyan.baidu.com/ar ...

  7. centos6 升级Git版本

    操作步骤如下: yum remove -y git #卸载旧版本Git yum install -y tk zlib-devel openssl-devel perl cpio expat-devel ...

  8. WPF --TextBox--圆角、水印、带单位

    <SolidColorBrush x:Key="TextBox.Static.Border" Color="#FFABAdB3"/> <Sol ...

  9. 机器学习(十一)-------- 异常检测(Anomaly Detection)

    异常检测(Anomaly Detection) 给定数据集

  10. 排障利器之远程调试与监控 --jmx & remote debug

    监控和调试功能是应用必备的属性之一,其手段也是多种多样. 一般地,我们可以通过:线上日志, zabbix, grafana, cat 等待系统做一问题留底,有问题及时报警,从而达到监控效果. 而对于应 ...