首页 > 其他分享 >01背包问题回溯

01背包问题回溯

时间:2022-11-01 20:24:14浏览次数:48  
标签:01 int tw vis 背包 result 回溯 tv MAX

include

define MAX 10000

using namespace std;

//int i,j;
int n,m;//n标志背包容量,m标致物品个数
int result=-9999;
int vis[MAX] = {0};
int w[MAX] = {0};
int v[MAX] = {0};

void dfs(int tw,int tv)
{
if(tw>n) return;
for(int i=0;i<m;i++)
{
cout<<"i : "<<m<<endl;

    if(vis[i]==0)
    {
        if(tw+w[i]<=n && tv+v[i]>result) result = tv+v[i];
        vis[i] = 1;
        dfs(tw+w[i], tv+v[i]);
        vis[i] = 0;
    }
}

}
int main()
{
freopen("C://in.txt","r",stdin);
scanf("%d,%d",&n,&m);
for(int j=0;j<m;j++)
{
scanf("%d,%d",&w[j],&v[j]);
}
dfs(0,0);
cout<<result;

}
/*
10,5
2,1
3,2
4,5
5,7
8,9
*/

标签:01,int,tw,vis,背包,result,回溯,tv,MAX
From: https://www.cnblogs.com/vvvv214/p/16849008.html

相关文章

  • 【闲话】2022.11.01
    今天是冬月的第一天万圣节dsu晚上会去大家屋里要糖的说起来很久没喝南瓜粥了今日一推这种东西,本来就是越离谱越好阴蜂(早就)已经有理论解了大家要不去打一下((说起来......
  • 回溯-子集
    组合是无序的,满足方案要求即可,对应不同的题意,有时候元素可以重复,有时候不能重复。排列是有序的,同一批元素可以有多种排列。子集跟上面两种又不同,首先空集是子集,一个元素......
  • [单片机框架][drivers层][bq25601] charger 电源管理
    接上一篇:​​[单片机框架][device层]charger电源管理​​bq25601器件是高度集成的3A开关模式电池充电管理和系统电源路径管理器件,适用于单节锂离子和锂聚合物电池。低......
  • 20201306吴龙灿第十二章学习笔记
    知识点归纳1.块设备I/O缓冲区什么是块设备:块设备是i/o设备中的一类,是将信息存储在固定大小的块中,每个块都有自己的地址,还可以在设备的任意位置读取一定长度的数据,例如硬......
  • 回溯-排列
    跟组合类似,排列也是穷举所有可行解,区别在于排列是有序的,同一个组合可以有多种排列。比如对组合来说[1,2,3]和[3,2,1]是同一个,但对于排列而言,就是两个。案例1:给定一个不含......
  • 2022-11-01每日一题
    第k个数给定一个长度为n的整数数列,以及一个整数k,请用快速选择算法求出数列从小到大排序后的第k个数。输入格式第一行包含两个整数n和k。第二行包含n个整数(所......
  • 回溯-组合
    组合问题也是需要进行穷举的,使用回溯算法正合适。案例1:给你一个无重复元素的整数数组 candidates和一个目标整数 target ,找出 candidates 中可以使数字和为目标......
  • 回溯-单词搜索
    在二维数组进行单词搜索也是经典的需要采用回溯算法的问题。案例1:给定一个 mxn二维字符网格 board和一个字符串单词 word。如果 word存在于网格中,返回true;否......
  • 【408】2014
    t45每个cache块由标记项、数据区组成!!访问A[0],查TLB未命中,查页表未命中,因此去磁盘调数据(OS有相应的机制去找到页面与磁盘地址的对应关系)调入主存中(同时更新页表和TLB(一般......
  • 深度学习从入门到精通——VOC 2012数据读取(pytorch)
    fromtorch.utils.dataimportDatasetimportosimporttorchimportjsonfromPILimportImagefromlxmlimportetreeclassVOC2012DataSet(Dataset):"""读取解析PASC......