Day46 动态规划part08 139.单词拆分 多重背包

Day46 动态规划part08 139.单词拆分 多重背包

139. 单词拆分

class Solution {
   
public:
    bool wordBreak(string s, vector<string>& wordDict) {
   
        unordered_set<string> wordSet(wordDict.begin(), wordDict.end());
        vector<bool> dp(s.size()+1,false); //dp[i]含义是字符串长度为i,能否单词拆分
        dp[0] = 1;
        for(int j = 0; j<=s.size();j++){
   
            for(int i = 0; i<j;i++){
   
                string word = s.substr(i,j-i);
                if(wordSet.find(word)!= wordSet.end()&&dp[i]) dp[j] = true;
            }
        }
        /*for(int i = 0; i<s.size();i++){
            for(int j = i; j<=s.size();j++){
                string word = s.substr(i,j-i);
                if(wordSet.find(word)!= wordSet.end()&&dp[i]) dp[j] = true;
            }
        }*/
        return dp[s.size()];
    }
};

多重背包

将问题转化为01背包求解

#include<iostream>
#include<vector>
using namespace std;

int main(){
   
    int C, N;
    cin>>C>>N;
    vector<int> weights(N);
    vector<int> values(N);
    vector<int> nums(N);
    for(int i = 0; i<N;i++) cin>>weights[i]; 
    for(int i = 0; i<N;i++) cin>>values[i]; 
    for(int i = 0; i<N;i++) cin>>nums[i]; 
    
    vector<int> dp(C+1);
    for(int i = 0;i<N;i++){
   
        for(int j = C; j >=weights[i];j--){
   
            for(int k=1; k<=nums[i]&&j-k*weights[i]>=0;k++){
   
                dp[j] = max(dp[j],dp[j-k*weights[i]]+k*values[i]);
            }
        }
    }
    std::cout << dp[C] << std::endl;
    return 0;
}

最近更新

  1. TCP协议是安全的吗?

    2024-01-27 20:28:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-27 20:28:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-27 20:28:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-27 20:28:01       20 阅读

热门阅读

  1. SpringBoot 基础概念:注册BeanDefinition

    2024-01-27 20:28:01       45 阅读
  2. 低代码助力企业转型可视化

    2024-01-27 20:28:01       38 阅读
  3. hbase shell行键过滤正则匹配

    2024-01-27 20:28:01       33 阅读
  4. Android创建保存Excel文件

    2024-01-27 20:28:01       33 阅读
  5. html:thymeleaf实现日期格式转换

    2024-01-27 20:28:01       51 阅读
  6. Web开发:AES加密解密的demo

    2024-01-27 20:28:01       32 阅读