zoukankan      html  css  js  c++  java
  • POJ 3624 Charm Bracelet

    代码:

    错误代码:超空间:由于定义了一个二维的dp数组,然后超了,所以我们要把二维转换为一维

    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    using namespace std;
    const int maxn = 3500;
    int dp[3405][12900];
    struct node{
        int w;
        int charm;
    }a[maxn];
    int main(){
        int n,m;
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++){
            scanf("%d%d",&a[i].w,&a[i].charm);
        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                if((j-a[i].w)>=0){
                    dp[i][j] = max(dp[i-1][j],dp[i-1][j-a[i].w]+a[i].charm); 
                } 
                else
                    dp[i][j] = dp[i-1][j];
                    
            }
        }
        cout<<dp[n][m]<<endl;
        return 0;
    }

     正确代码:

    #include<iostream>
    #include<stdio.h>
    using namespace std;
    const int maxn = 13000;
    int dp[maxn];
    int w[3500],charm[3500];
    int main(){
        int n,m;
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++){
            scanf("%d%d",&w[i],&charm[i]);
        }
        for(int i=1;i<=n;i++){
            for(int j=m;j>=1;j--){
                if(j-w[i]>=0)
                dp[j] =  max(dp[j],dp[j-w[i]]+charm[i]);
            }
        }
        cout<<dp[m]<<endl;
        return 0;
    }

    或是

    #include<iostream>
    #include<stdio.h>
    using namespace std;
    const int maxn = 13000;
    int dp[maxn];
    int w,charm;
    int main(){
        int n,m;
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++){
            scanf("%d%d",&w,&charm);
            for(int j=m;j>=w;j--){
                dp[j] = max(dp[j],dp[j-w]+charm);
            }
        }
        cout<<dp[m]<<endl;
        return 0;
    }
  • 相关阅读:
    _status()函数
    _clear87()函数
    _clear87()函数
    _clear87()函数
    _clear87()函数
    南邮NOJ1009 2的n次方
    南邮NOJ2063 突发奇想的茂凯
    南邮NOJ2063 突发奇想的茂凯
    【HDOJ】1297 Children’s Queue
    【HDOJ】2103 Family planning
  • 原文地址:https://www.cnblogs.com/lusiqi/p/12336725.html
Copyright © 2011-2022 走看看