ACM--动态规划LIS,LCS及背包

今天看了一下dp

来看看代码吧

//*****LIS

#include
using namespace std;

int a[10010];
int dp[10010];
int main()
{
    int n ;
    while (cin>>n&&n)
    {
        for(int i=1;ia[j])
                {
                    dp[i]=max(dp[j]+1,dp[i]);
                }
            }
            ans=max(ans,dp[i]);
        }
        cout<
using namespace std;
#define INF 0x3f3f3f

int dp[10010]; //dp[i]表示长度为i+1的子序列末尾元素的最小值;
int a[10010];
int main()
{
    int n;
    while(cin>>n&&n)
    {
        for(int i=0;i>a[i];
            dp[i]=INF;
        }
        for(int i=0;i=a[i]的第一个元素
        }
        cout<
using namespace std;
string s1,s2,s3;
int dp[1000][1000];
int len1,len2;
int main()
{
    while(cin>>s1>>s2)
    {
        memset(dp,0,sizeof(dp));
        len1=s1.length();
        len2=s2.length();
        for(int i=0;i=Wi),dp[i-1][j]}


#include
using namespace std;

int n,m;
int dp[1000];
int v[1000];
int w[1000];
int main()
{
    while(cin>>n>>m)
    {
        memset(dp,0,sizeof(dp));
        for(int i=0;i>w[i]>>v[i];
        }
        for(int i=0;i=w[i];j--){
                dp[j] = max(dp[j],dp[j-w[i]]=v[i]);
            }
        }
        cout<
using namespace std;

int n,m;
int dp[1000];
int v[1000];
int m[1000];
int main()
{
    while (cin>>n>>m)
    {
        
    }
}

就是今天就是只学了LIS和LCS以及背包

参考hdu1257拦截系统的题目

你可能感兴趣的:(ACM)