题目链接:点击进入

题目分析:

简单的组合背包模板题,但是递推的同时要刷新这种情况使用了哪些物品

ac代码:

#include<bits/stdc++.h>
using namespace std;
int weigh[],zhu[],t[];
struct student
{
int s;
int number;
int a[];
}f[][];
int main()
{
std::ios::sync_with_stdio(false);
int m,v,n;//m总重量,v总阻力,n物品数
cin>>m>>v>>n;
for(int i=;i<=n;i++)
{
cin>>weigh[i]>>zhu[i]>>t[i];//weigh个体重量,zhu个体阻力,t个体价值
}
for(int i=;i<=n;i++)
for(int mi=m;mi>=weigh[i];mi--)
for(int vi=v;vi>=zhu[i];vi--)
{
//printf("\nnumber=%d\n",f[0][0].number);
if(f[mi][vi].s<f[mi-weigh[i]][vi-zhu[i]].s+t[i])
{
f[mi][vi].s=f[mi-weigh[i]][vi-zhu[i]].s+t[i];
if(f[mi-weigh[i]][vi-zhu[i]].number==)
{
f[mi][vi].a[]=i;
f[mi][vi].number=;
}
else
{
for(int x=;x<=f[mi-weigh[i]][vi-zhu[i]].number;x++)
{
f[mi][vi].a[x]=f[mi-weigh[i]][vi-zhu[i]].a[x];
}
f[mi][vi].number=f[mi-weigh[i]][vi-zhu[i]].number+;
f[mi][vi].a[f[mi][vi].number]=i;
}
}
}
int maxn=f[m][v].s,last_i=m,last_j=v;
printf("%d\n",maxn);
for(int i=m;i>=;i--)
for(int j=v;j>=;j--)
{
if(f[i][j].s!=maxn&&f[last_i][last_j].s==maxn)
{
for(int x=;x<=f[last_i][last_j].number;x++)
{
printf("%d ",f[last_i][last_j].a[x]);
}
//printf("%d",f[last_i][last_j].number);
return ;
}
last_i=i;last_j=j;
}
return ;
}

然后最后在找到相同时间下使用的最少物品情况就好了

对于f数组可以用结构体存,这样更方便,顶多不好写,可是思路清晰

我对于当前已经存了多少个数是从一开始记,所以用了if,else的分类讨论,防止出查错

P1759 通天之潜水(不详细,勿看)(动态规划递推,组合背包,洛谷)的更多相关文章

  1. P1759 通天之潜水(双写法+解析)

    算法解析 动态规划问题满足三大重要性质 最优子结构性质:如果问题的最优解所包含的子问题的解也是最优的,我们就称该问题具有最优子结构性质(即满足最优化原理).最优子结构性质为动态规划算法解决问题提供了重 ...

  2. 洛谷 P1759 通天之潜水

    P1759 通天之潜水 19通过 65提交 题目提供者lych 标签动态规划洛谷原创 难度普及/提高- 提交该题 讨论 题解 记录 最新讨论 暂时没有讨论 题目背景 直达通天路·小A历险记第三篇 题目 ...

  3. 洛谷——P1759 通天之潜水

    P1759 通天之潜水   题目背景 直达通天路·小A历险记第三篇 题目描述 在猴王的帮助下,小A终于走出了这篇荒山,却发现一条波涛汹涌的河拦在了自己的面前.河面上并没有船,但好在小A有n个潜水工具. ...

  4. 洛谷P1759 通天之潜水

    题目背景 直达通天路·小A历险记第三篇 题目描述 在猴王的帮助下,小A终于走出了这篇荒山,却发现一条波涛汹涌的河拦在了自己的面前.河面上并没有船,但好在小A有n个潜水工具.由于他还要背重重的背包,所以 ...

  5. luogu P1759 通天之潜水

    题目背景 直达通天路·小A历险记第三篇 题目描述 在猴王的帮助下,小A终于走出了这篇荒山,却发现一条波涛汹涌的河拦在了自己的面前.河面上并没有船,但好在小A有n个潜水工具.由于他还要背重重的背包,所以 ...

  6. p1036 选数(不详细勿看,递归)

    题目:传送门 这题,不会做,而且看了好久才看懂题解的,然后在题解的基础上补了一个 if(start>end) return 0 感觉这样对于我更直观 转载自:大神博客的传送门,点击进入 先声明, ...

  7. 洛谷 通天系列 P1760 P1757 P1759

    P1760 通天之汉诺塔 汉诺塔问题.一个高精乘单精解决 ans=2^n-1 /*by SilverN*/ #include<algorithm> #include<iostream ...

  8. 51nod 1126 求递推序列的第N项 思路:递推模拟,求循环节。详细注释

    题目: 看起来比较难,范围10^9 O(n)都过不了,但是仅仅是看起来.(虽然我WA了7次 TLE了3次,被自己蠢哭) 我们观察到 0 <= f[i] <= 6 就简单了,就像小学初中学的 ...

  9. 洛谷P1757 通天之分组背包

    题目背景 直达通天路·小A历险记第二篇 题目描述 自01背包问世之后,小A对此深感兴趣.一天,小A去远游,却发现他的背包不同于01背包,他的物品大致可分为k组,每组中的物品相互冲突,现在,他想知道最大 ...

随机推荐

  1. Rails bootstrap导入

    创建: 2018/03/24 完成: 2018/03/24 适用于Sass, Scss. Less的自己网上搜吧 如何判断是不是Sass/Scss?项目里搜 gem 'sass-rails' ,gem ...

  2. PostgreSQL完整备份与还原过程

    1. 备份10.12.2.100PC机(服务器)上的数据库(仅备份数据库和对应的数据库里面各表的结构): pg_dump -h 10.12.2.100 -U postgres -p 8101 -d t ...

  3. python 模块 module 规范

    # /usr/bin/python # -*- coding=utf-8 -*- """This is a standard module""&quo ...

  4. bzoj 3270: 博物馆【dp+高斯消元】

    好像是高斯消元解互相推(?)的dp的例子 首先考虑dp,设f[i][j]为一人在i一人在j的概率,点i答案显然就是f[i][i]: 然后根据题意,得到转移是 \[ f[i][j]=f[i][j]*p_ ...

  5. 使用了eclipse10年之后,我终于投向了IDEA

    使用了eclipse10年之后,我终于投向了IDEA 最近,改用了idea,同事都说我投敌了.当然,这些同事都是和我一样的"老"程序员.不说毕业生,公司里的90后基本电脑都不会安装 ...

  6. 洛谷 P3808 【模板】AC自动机(简单版)洛谷 P3796 【模板】AC自动机(加强版)

    https://www.cnblogs.com/gtarcoder/p/4820560.html 每个节点的后缀指针fail指针指向: 例如he,she,his,hers的例子(见蓝书P214): 7 ...

  7. JDBC连接Oracle工具类

    import java.sql.*;import java.util.ResourceBundle; /** * jdbc工具类,负责: * 1. 加载/注册数据库驱动程序 * 2. 获取数据库连接 ...

  8. [BZOJ1085][SCOI2005]骑士精神 搜索

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1085 大的思路是迭代加深搜索,我们加一个明显的剪枝,当棋盘中位置不对的骑士的数目加上已经走 ...

  9. 用vue写的移动端车牌号输入法

    效果图: (录制了视频演示,然而不会上传.....心塞.....) 本页面所在项目已上传GitHub,github下载地址:https://github.com/dan-Zd/car-vueapp  ...

  10. DELL笔记本安装Ubuntu 14.04

    1. 将制作好的USB启动盘插入电脑,按f2进入启动选择选项,选择U盘启动: 进入选择界面后讲光标移动到"install Ubuntu"选项,按'e'进入grub界面,将倒数第二行 ...