2017日照夏令营 day5 t1 backpack

本文介绍了一种针对01背包问题的特殊优化方法,适用于物品重量变化范围有限的情况。通过设定基准值并调整物品重量,利用三维动态规划解决大规模背包问题,确保时间和空间效率。

题目描述
Blice和阿强巴是好朋友
但萌萌哒Blice不擅长数学,所以阿强巴给了她一些奶牛做练习
阿强巴有 头奶牛,每头奶牛每天可以产一定量的奶,同时也需要一定量的草作为饲料
对于第 头奶牛来说,它每天可以产 升的奶,同时需要 千克的草作为饲料
现在来自蚯蚓国的九条可怜想借一些奶牛,使借走的这些奶牛每天的总产奶量最大,但九条可怜很穷,每天最多只能提供
千克的草作为饲料,而且她还需要对付跳蚤国的神刀手,所以她把这个问题交给了阿强巴,不不不……阿强巴觉得这个
问题太简单了,所以把这个问题交给了你
输入格式
第一行两个整数 ,表示奶牛的数量和每天最多能提供的草
接下来 行,每行两个整数,第 行表示第 头奶牛的产奶量 和食量
输出格式
仅一行,输出一个整数,表示每天最大的总产奶量
输入样例
8 40
10 9
12 11
11 12
10 10
8 11
7 9
8 10
9 10
输出样例
41
限制与约定
对于 的数据,
另有 的数据,
另有 的数据,
对于 的数据,
对于所有数据,均满足特殊限制:
n
i vi wi
W
n,W
n i i vi wi
20% n ≤ 10
30% W ≤ 10000
10% wi = w1
100% 1 ≤ n ≤ 100,1 ≤ wi,W ≤ 109
,1 ≤ vi ≤ 10
7
w1 ≤ wi ≤ w1 + 3

一看便是01背包的题目,但是题中W会很大,普通的背包肯定不行了,但是
观察到wi的变化不超过3
令base=w1,然后把所有的wi减去base
设计状态f[i][j][k]表示DP到第i个奶牛时,选了j个奶牛,这j个奶牛(减去base之后的)w_i的和为k
就是对01背包简单做一下变形
时间复杂度O(n^3),空间复杂度O(n^3)或O(n^2)
第一维可以优化,不过对时间复杂度没有影响

记忆化搜索

#include<cstdio>
#include<iostream>
using namespace std;
int n,m,lim;
int f[105][105][305],w[105],v[105];
char vis[105][105][305];
int dp(int i,int j,int k)
{
    if (1LL*j*lim+k>m) return -2e9;//如果k>m-j*lim显然是超过背包容量的。舍去
    if (i==n) return 0;
    if (f[i][j][k]) return f[i][j][k];//记忆化搜索
    return f[i][j][k]=max(dp(i+1,j,k),dp(i+1,j+1,k+w[i+1])+v[i+1]);
}
main()
{
    //freopen("backpack.in","r",stdin);
    //freopen("backpack.out","w",stdout);
    scanf("%d%d",&n,&m);
    for (int i=1;i<=n;++i) scanf("%d%d",v+i,w+i);
    lim=w[1];
    for (int i=1;i<=n;++i) w[i]-=lim;
    printf("%d\n",dp(0,0,0));
    return 0;
}
下载前可以先看下教程 https://pan.quark.cn/s/a426667488ae 标题“仿淘宝jquery图片左右切换带数字”揭示了这是一个关于运用jQuery技术完成的图片轮播机制,其特色在于具备淘宝在线平台普遍存在的图片切换表现,并且在整个切换环节中会展示当前图片的序列号。 此类功能一般应用于电子商务平台的产品呈现环节,使用户可以便捷地查看多张商品的照片。 说明中的“NULL”表示未提供进一步的信息,但我们可以借助标题来揣摩若干核心的技术要点。 在构建此类功能时,开发者通常会借助以下技术手段:1. **jQuery库**:jQuery是一个应用广泛的JavaScript框架,它简化了HTML文档的遍历、事件管理、动画效果以及Ajax通信。 在此项目中,jQuery将负责处理用户的点击动作(实现左右切换),并且制造流畅的过渡效果。 2. **图片轮播扩展工具**:开发者或许会采用现成的jQuery扩展,例如Slick、Bootstrap Carousel或个性化的轮播函数,以达成图片切换的功能。 这些扩展能够辅助迅速构建功能完善的轮播模块。 3. **即时数字呈现**:展示当前图片的序列号,这需要通过JavaScript或jQuery来追踪并调整。 每当图片切换时,相应的数字也会同步更新。 4. **CSS美化**:为了达成淘宝图片切换的视觉效果,可能需要设计特定的CSS样式,涵盖图片的排列方式、过渡效果、点状指示器等。 CSS3的动画和过渡特性(如`transition`和`animation`)在此过程中扮演关键角色。 5. **事件监测**:运用jQuery的`.on()`方法来监测用户的操作,比如点击左右控制按钮或自动按时间间隔切换。 根据用户的交互,触发相应的函数来执行...
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值