poj3093 分类: poj 2015-07...


枚举最终无法选取的最小物品,那么显然比这个物品代价小的物品都必须要选。
对于比这个物品代价大的物品,DP计算方案数即可。

至于物品价值相同的根据排序之后的顺序视为不同就可以了。

设 dp(i,j) 表示选取i~n个物品,花费j元的方案数,

dp(n+1,0)=1,dp(i,j)=dp(i+1,j)+dp(i+1,j−c[i])

假设此时无法选取的最小物品为 x ,除去必须要选的物品剩余空间为rem

那么此时的方案数为 ∑c[x]−1r=0dp(x+1,rem−r)

把方案数累加起来就是答案啦~另外也要特判。


#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <ctime>
#include <vector>
#include <utility>
#include <stack>
#include <queue>
#include <iostream>
#include <algorithm>

const int maxn = 1005, maxd = 1005;

int n, d, c[maxn];
long long f[maxd];
long long ans, sum;

int main()
{
    int T;

#ifndef ONLINE_JUDGE
    freopen("poj3093.in","r",stdin);
    freopen("poj3093.out","w",stdout);
#endif

    std::cin >> T;

    for(int Case = 1; Case <= T; Case++)
    {
        std::cout << Case << ' ';

        std::cin >> n >> d;
        for(int i = 1; i <= n; i++)
            scanf("%d",&c[i]);

        std::sort(c + 1, c + n + 1);

        memset(f, 0, sizeof(f));
        ans = 0, sum = 0, f[0] = 1;
        for(int i = 1; i <= n; i++)
            sum += c[i];

        for(int i = n; i > 0; i--)
        {
            sum -= c[i];

            for(int j = std::max(0LL, (long long)d - sum - (c[i] - 1)); j <= d - sum; j++)
                ans += f[j];
            for(int j = d; j >= c[i]; j--)
                f[j] += f[j - c[i]];
        }

        if(c[1] > d) ans = 0; 

        std::cout << ans << std::endl;
    }

#ifndef ONLINE_JUDGE
    fclose(stdin);
    fclose(stdout);
#endif
    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/dashgua/p/4722973.html

【Qt】QML-01:使用QtCreator10创建QML工程,并讲解第一个程序:Hello World QML第一讲:创建QML工程、详解QML第一个程序Hello World 阅读详情

相关推荐

slam_toolbox 简介和使用

专为移动机器人在未知环境中实时构建地图和定位设计。它适用于2D和3D环境,支持多种机器人平台和传感器配置。

weixin_74808846的博客 3305

poj3093(背包最大容量)

链接:点击打开链接 题意:给定一个容量为D的背包和V件物品各自的体积,求有多少种方法使得背包再也装不下任何物品 代码: #include #include #include #include using namespace std; int w[1005],dp[1005],sum[1005]; int main(){ int t,n,v,i,j,k,ans,t

stay_accept的专栏 1081

ESD放电路径分析

当金属外壳接地情况下,大部分外部干扰信号将会通过外壳,外壳到接地点,再由接地点回到干扰信号的地,实现干扰信号的回流,这点不仅仅适用于​ESD,对于其他的RI类干扰,也同样适合。发现内部金属板跟外壳的搭接处存在较多的缝隙点,该缝隙点对于频率较高的信号能够实现较为理想的回流,但是对于频率没有那么高的信号,则较难以实现回流,我们尝试将这些缝隙用铜箔包裹住,充分降低该金属板跟外壳的接触阻抗​。我们分析,路径3其实是不期望的路径,我们最期望的路径是1,或者2的内部金属部件跟外壳良好接触情况下的路径。

domen_pan的博客 2226

POJ 3093 Margaritas on the River Walk

给n个物品,容量为V的包,要求这样的方案数:选中k个物品放入背包后,剩下的物品中,任意一个都放不进去考虑什么情况下一个都放不进去,就是剩下物品中体积最小的那个(体积为v)都放不进去,即背包装载容量应为[V-v+1,V]那么我们可以将物品按容量排序,从小到大枚举不放入背包的体积最小

scorpiocj的专栏 1015

2篇5章1节:实验流行病学的核心特征和设计原则

本文系统阐释实验流行病学的核心定义、四大核心特征、四大基本原则及主流设计类型,结合骨科、肿瘤科、儿科、精神科、内外妇儿及公共卫生等多学科临床实践案例,具象化解读人为干预、随机分组、平行对照、前瞻性设计的核心内涵与应用价值。同时,规范梳理对照、随机、盲法、重复四大研究基本原则,详细介绍临床试验、现场试验、社区试验三类主流研究设计的适配场景与应用差异。

MD Code 165

扣子Coze触发器使用指南:实现工作流定时执行的完整教程

Coze平台触发器功能详解:定时触发器配置指南 摘要:Coze平台的触发器是实现自动化任务的核心组件,其中定时触发器能够按预设时间自动执行工作流。本指南介绍了定时触发器的配置方法,包括每日、每周、每月及Cron表达式等多种时间设置方式,以及如何关联工作流执行具体任务。文章还提供了健身提醒等实用案例,并涵盖了触发器调试、发布及常见问题解决方案。通过合理配置定时触发器,用户可以轻松实现各类自动化任务,如定时发送消息、数据采集等,大幅提升工作效率。

互联网架构师笔记 1922

POJ3093 Margaritas on the River Wal ( 背包DP)

POJ3093 Margaritas on the River Walk原题地址:http://www.lydsy.com/JudgeOnline/problem.php?id=2287题意: T组数据,每次给定N个物品的价格和总的钱数,每种物品只能选一次,求共有多少种方案,使之不能再装下任一物品。数据范围 T<=1000,N<=30,M<=1000题解: (好题)因为要求背包不能再装的方案数

Bfk的博客 600

Dify平台隐患url:/console/api/remote-files/upload暴露高危漏洞,配置nginx htpasswd模块认证机制屏蔽解决

内部网络探测: 攻击者可通过SSRF扫描内网服务云元数据访问: 可能访问AWS/Aliyun/腾讯云等元数据服务服务端请求伪造: 以服务器身份发起任意HTTP请求。

CN_Eden 1317

POJ 3093 Margaritas on the River Walk 0-1背包好题

给n个物品,容量为m的包,要求这样的方案数:选中n个物品放入背包后,剩下的物品中,任意一个都放不进去。   我们先将物品按容量从大到小排序。 考虑以下2种情况: 1. 考虑一种特殊情况,一个都放不进去,就是剩下物品中体积最小的那个(体积为w[1])都放不进去,这个情况就会无解,答案为0; 2. 一般情况:从小到大枚举不放入背包的体积最小的,那么此时比它小的物品都应该放入背包中,此时背包装

Nicolas 988

车载ECU底软测试:方法与技术的深度解析

底软是运行在 ECU 硬件平台上的基础软件,它为上层应用程序提供了硬件驱动、操作系统服务、通信协议栈等功能。底软的主要功能包括:硬件驱动:负责与 ECU 的各种硬件外设进行通信和控制,如 GPIO、UART、SPI、CAN 等。操作系统服务:提供任务调度、内存管理、中断处理等功能,确保系统的实时性和稳定性。通信协议栈:实现 ECU 与其他 ECU 或外部设备之间的通信,如 CAN、LIN、FlexRay 等。诊断服务:负责对 ECU 的故障进行诊断和处理,并将故障信息存储在故障码存储器中。

天赐好车的博客 1422

YOLO26改进105:全网首发--使用BiFPN改进特征金字塔网络

YOLOv6 v3.0在目标检测领域实现重大突破,通过改进网络架构和训练方案显著提升性能。该版本在COCO数据集上展现出优越表现:YOLOv6-N达到37.5% AP/1187 FPS,YOLOv6-S实现45.0% AP/484 FPS,均超越同类检测器。大模型YOLOv6-M/L分别达到50.0%/52.8% AP,L6版本更创下实时检测新纪录。关键技术包括RepVGGBlock、BiFusion等新型模块,通过多分支融合和高效重参数化设计提升性能。研究团队已验证各改进模块有效性,代码已开源。

AIcurator的博客 95

poj 3093

Poj3093 (背包)题目大意:有V件物品,每件物品有大小,有一个大小为D的背包,求极大背包方案数 思路:枚举剩下的物品是什么,小于它的一定会选择,大于的做背包 一个优化:从大到小枚举#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> #define fo(i,a,b

折戟沉沙 493

am62x A53与R5F通信

AM62x是Ti的一款异构多核芯片。remoteproc驱动,硬编码(写死)了R5F/M4F固件的名字,这样驱动启动时,就会找硬件编码的固件,下面是其对应关系。值得注意的是,linux内核中的M4F remoteproc驱动启动M4F,而linux内核中的R5F remoreteproc驱动不启动R5F,相反,它attach到已经在boot阶段启动的R5F固件上。在/lib/firmware的真实固件名:,而我们生成的固件名如下所示,没有直接对应的,经确认,.out文件就是我们需要的,重命名后即可。

鹰之翔 1358

POJ 3093 背包 (技巧优化)

参考:09年集训队论文《浅谈几类背包问题》 徐持衡题意:多组输入,每组给定物品数(<=30)和背包容量(<=1000)以及接下来每个物品的体积,问有多少种方案,使得装入一些物品后,无法装入剩下的任意一个物品。可以转化成0-1背包来做,首先按体积从小到大排序,枚举“剩下的物品”中体积最小的。剩下的物品中体积最小的为i时,前i-1个物品是必然被装入背包的,然后对第i+1到第n个物品做0-1背包问题,转移

Sky 832

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

POJ 3093 Margaritas on the River Walk(背包)

题意:有n件物品,每件都有价值,用m的钱买这些物品,。尽可能多的买东西,(直到钱不够买其他的东西为止)。问有多少种买东西的方法。。 思路:自己弄了一个状态转移方程,发现是错的。。后来 yy教我的‘。。。。先不买第一件物品,弄一个方程。。。再必须买第一件物品,不用第二件物品。。。再必须买前两件,不买第三件。。。类推。。这样就没有重复。。。然后考虑边界就ok了 #include #include

binwin20 969

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

poj3093 Margaritas on the River Walk(特殊的01背包)

题意:多组输入,每组给定物品数(<=30)和背包容量(<=1000)以及接下来每个物品的体积,问有多少种方案,使得装入一些物品后,无法装入剩下的任意一个物品。 可以转化成01背包来做,首先按体积从小到大排序,枚举“剩下的物品”中体积最小的。剩下的物品中体积最小的为i时,前i-1个物品是必然被装入背包的,然后对第i+1到第n个物品做01背包,此时背包容量应为[m-v[i]+1,m] (保证连此时剩下

Icefox的博客 591

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

POJ 3093 Stock Exchange - (DP)

题目链接:http://poj.org/problem?id=3903 #include &lt;stdio.h&gt; #include &lt;vector&gt; #include &lt;algorithm&gt; using namespace std; //POJ 3903 Stock Exchange int main() { int N; while...

rsy56640的博客 242

POJ 3093 Margaritas on the River Walk(背包)

题意 n个有体积的物品,问选取一些物品,且不能再继续选有多少方法? n<=1000 题解 以前的考试题。当时是A了,但发现是数据水,POJ上WA了。 把体积从小到大排序枚举没选的物品中体积最小的。 假设枚举到i,那么1到i-1一定都选。可选的空间为[m-sum[i-1]+1,m] 然后对于后面的数跑DP的到f[i][j]前i个数空间恰好为j时的方案; 贡献为可选空间...

Aaronliu17008的博客 239

POJ 3093 Margaritas on the River Walk 笔记

V种酒,品酒师有D元钱,给出每种酒的价格。尽量多品酒,求有多少种品酒组合。

woniupengpeng的专栏 326

poj 3093 Margaritas on the River Walk(01背包统计)

Margaritas on the River Walk Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2126   Accepted: 792 Description One of the more popular activities in San Ant

志当存高远 1595

poj 3093 Margaritas on the River Walk(背包)

题意: 物品数n和背包容量v,以及n个物品的体积,问有多少种方案是再也装不下其他物品的; 思路: 按体积从小到大排序,枚举每个物品作为刚好不能再放下的情况。对于每个物品刚好放不下的情况,肯定是因为拿了比它小的所有物品, 因为对于每种方案你判断它是不是一种答案,是通过判断该种方案没有拿的物品里面最小的物品还能不能再拿。能拿则不是答案,不能 拿的话其他的物品肯定也不能拿。 所以dp数组为 dp[拿到...

ayyyyy_zc的博客 277

poj3093Margaritas on the River Walk【01背包计算方法数】

Description One of the more popular activities in San Antonio is to enjoy margaritas in the park along the river know as the River Walk. Margaritas may be purchased at many establishments along th

MissZhou要努力 995

POJ 3093 Margaritas on the River Walk (0-1背包变形)

这题目的思路很巧妙,什么情况下剩下的所有物品都放不下呢?就是当前剩余物品中最小的那个也放不下。所以,先把物品按照容量从小到大排序,依次枚举当前背包为放不下的最小物品的情况。 对于当前物品i,必有1到i-1的所有物品都放进去,这时候比i大的物品谁放谁不放是不确定的。转换成0-1背包问题:把前i-1个物品都放进去以后,得到空间为tsum - sum[i-1](前缀和)的包,只要从第i+1到第n个物品

公孙轩辕,一眼千年 837

POJ-3093___Margaritas on the River Walk —— 01背包的变异

题目链接:传送门 题目大意: &amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;多组样例,在这里我们假设有nnn个物品,容量为mmm的背包,问有多少种方案,使得剩下的所有物品都装不进背包。。。。。。 解题思路: &amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp

Scar_Halo 590

POJ 3093 Margaritas on the River Walk(背包方案统计变型)

题意: 给n个物品,容量为V的包,要求这样的方案数:选中 k 个物品放入背包后,剩下的物品中,任意一个都放不进去 思路: 1. 对于普通的方案统计有:dp[0] = 1, dp[v] += dp[v - wk] 即容量为 v 时,拿第 k 件物品和不拿第 k 件物品的情况的和 2. 本题要求剩下的物品,任意一个都放不进去,则需要特殊考虑: a. 对物品进行从小到大排序,按...

weixin_30537391的博客 136

POJ3093 浅谈背包DP预处理

世界真的很大 (配合今天fate新番特地用的贞德2333) dp的题很多,但是很多时候dp并不是解题的全部,这样的题也见过不少了。这类题大多都是发现解题所需的条件具有线性关系,可以由dp的方式递推得到,作为预处理,这道题就是这样。 Description给出n个只有重量没有价值的物品和一个大小为m的背包,现在要求选出一些物品放进背包(不能超过重量限制m),使得剩下的物品都不能再放进去,问不同的

BerryKanry的博客 581
上一篇: hdu4003 分类: hdu 2015-07...
下一篇: NOIP-贪心,递推,枚举,模拟 分类: noip ...
aa288288
博客等级 码龄11年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值