zoukankan      html  css  js  c++  java
  • 01背包问题模板代码

    01背包问题

    Pleiades_Antares

    打个模板,基本上01背包都这个样子了~

    从百度上摘来两张图,简单可以说明01背包了应该

    这是我找的第一张

    这是我找的第二张

    01背包是DP的内容,DP刚开始学一般都是记忆化搜索嘛,那就是优化过的搜索问题

    不知道这么说各位能不能理解“记忆化搜索”这个名字qwq

    如果需要的更详细的解释的话麻烦评论下/站内信,我把具体的内容再发出来

    (quq我都有课件阔是我懒得再搬运PPT了qwq需要的话再发出来咯)

    (至于我为什么最近不写TG相关只写最基础的PJ的内容,请戳这里了解

    代码放出来:

    //01背包 
    #include<iostream>
    using namespace std;
    //stellar myself!
    const int maxn=1000;
    int m[maxn][maxn];
    int w[maxn],v[maxn];
    int C,N;
    void add(int i,int j){
    	if (j<w[i])
    		m[i][j]=m[i-1][j];
    	else
    		m[i][j]=max(m[i-1][j],m[i-1][j-w[i]]+v[i]);
    }
    int main(){
    	cin>>N>>C;
    	for(int i=1;i<=N;i++){
    		cin>>w[i]>>v[i];
    	}
    	for(int i=1;i<=N;i++){
    		for(int j=1;j<=C;j++){
    			add(i,j);
    		}
    	}
    	int big=m[1][1];
    	for(int i=1;i<=N;i++){
    		for(int j=1;j<=C;j++){
    			if (m[i][j]>big) big=m[i][j];
    		}
    	}
    	cout<<big<<endl;
    	return 0;
    } 
    

    如有疏漏还请指出

  • 相关阅读:
    Mycat之按照时间进行分片
    Mysql binlog解析器
    字体属性和文本属性总结
    css选择器
    CSS的三种引入方式
    CSS样式语法
    应用程序与数据库结合使用的三种方式
    存储过程
    子查询
    多表查询
  • 原文地址:https://www.cnblogs.com/irischen/p/01-backpack.html
Copyright © 2011-2022 走看看