zoukankan      html  css  js  c++  java
  • UVA 624 CD

    主要是打印路径有点麻烦,然后就是用于标记的数组要开大点,不然会狂wa不止,而且还不告诉你re

    #include <cstdio>  
    #include <iostream>  
    #include<algorithm>
    #include<math.h> 
    #include <string.h>  
    #include<vector> 
    #include<queue>
    using namespace std;
    
    int dp[10005],w[30];
    bool vis[10005][1005];    //用于标记路径
    
    int main()
    {
        int vol,n,k;
        while(scanf("%d %d",&vol,&n)!=EOF)
        {
            memset(dp,0,sizeof(dp));
            memset(vis,0,sizeof(vis));
            
            for(int i=0;i<n;i++)
                scanf("%d",&w[i]);
            
            for(int i=0;i<n;i++)
                for(int j=vol;j>=w[i];j--)
                if(dp[j]<=dp[j-w[i]]+w[i])
                {
                    dp[j]=dp[j-w[i]]+w[i];
                    vis[j][i]=1;
                }
        
            for(int i=n-1,j=vol;i>=0;i--)  //打印路径
            {    
                if(vis[j][i])
                {
                    printf("%d ",w[i]);
                    j-=w[i];
                 }
            }
            printf("sum:%d
    ",dp[vol]);  
        }
        return 0;
     } 
  • 相关阅读:
    coredata
    去除XIB上UITextView光标垂直居中问题
    IOS 开发使用SVN
    CSS层叠样式表--找到标签
    简单的爬虫
    HTML
    13索引
    12事务
    12内建函数
    11存储过程
  • 原文地址:https://www.cnblogs.com/pter/p/5396875.html
Copyright © 2011-2022 走看看