hdu 3448(搜索+剪枝)Bag Problem

国央企创新负责人如何通过平台实现科研成果的快速识别与转化?.docx 科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。 立即下载

题意:

给n(n<=40)个物品和背包的容量w以及背包能装的物品个数k,每个物品有一个重量,问在满足背包的限制的情况下最多可以装多少物品。

思路

做过类似的题目,第一反应就是爆搜每个物品的两个状态放和不放。2^40肯定不行,来剪枝吧。
先把物品从小到大排序。一个有效的剪枝就是,最大的k个物品的重量和小于w那么这个重量和就是答案了,也是搜索中比较极限的情况,避免了去做搜索。
这样可以水过了,几乎没跑时间。5S有点吓人的意思?。
或许可以出可以卡这种剪枝的数据?

复杂度:

反正几乎没跑时间2333.

参考code:

/*
 #pragma warning (disable: 4786)
 #pragma comment (linker, "/STACK:0x800000")
 */
#include <cassert>
#include <cctype>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <sstream>
#include <iomanip>
#include <string>
#include <vector>
#include <list>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <algorithm>
#include <iterator>
#include <utility>
using namespace std;

template< class T > T _abs(T n) { return (n < 0 ? -n : n); }
template< class T > T _max(T a, T b) { return (!(a < b) ? a : b); }
template< class T > T _min(T a, T b) { return (a < b ? a : b); }
template< class T > T sq(T x) { return x * x; }
template< class T > T gcd(T a, T b) { return (b != 0 ? gcd<T>(b, a%b) : a); }
template< class T > T lcm(T a, T b) { return (a / gcd<T>(a, b) * b); }
template< class T > bool inside(T a, T b, T c) { return a<=b && b<=c; }


#define MIN(a, b) ((a) < (b) ? (a) : (b))
#define MAX(a, b) ((a) > (b) ? (a) : (b))
#define F(i, n) for(int (i)=0;(i)<(n);++(i))
#define rep(i, s, t) for(int (i)=(s);(i)<=(t);++(i))
#define urep(i, s, t) for(int (i)=(s);(i)>=(t);--(i))
#define repok(i, s, t, o) for(int (i)=(s);(i)<=(t) && (o);++(i))            
#define MEM0(addr) memset((addr), 0, sizeof((addr)))
#define MP(x, y) make_pair(x, y)
#define REV(s, e) reverse(s, e)
#define SET(p) memset(pair, -1, sizeof(p))
#define CLR(p) memset(p, 0, sizeof(p))
#define MEM(p, v) memset(p, v, sizeof(p))
#define CPY(d, s) memcpy(d, s, sizeof(s))
#define READ(f) freopen(f, "r", stdin)
#define WRITE(f) freopen(f, "w", stdout)
#define SZ(c) (int)c.size()
#define PB(x) push_back(x)
#define ff first
#define ss second
#define ll long long
#define ld long double
#define pii pair< int, int >
#define psi pair< string, int >
#define ls u << 1
#define rs u << 1 | 1
#define lson l, mid, u << 1
#define rson mid, r, u << 1 | 1

const int maxn = 1e6+5;
const ll INF = 0x3f3f3f3f3f3fLL;

ll n,w,k;
ll a[45];
ll ans;
int vis[45];
void dfs(int pos,int num,ll sum){
    if(num > k || pos > n) return;
    if(sum > ans) ans = sum;
    rep(i,pos+1,n){
        if(!vis[i] && a[i] + sum <= w){
            vis[i] = 1;
            dfs(pos + 1,num + 1,sum + a[i]);
            vis[i] = 0;
        }
    }
}
int main(){
    READ("in.txt");
    while(scanf("%lld%lld",&k,&w)!=EOF){
        scanf("%lld",&n);
        rep(i,1,n) scanf("%lld",&a[i]);
        sort(a+1,a+1+n);
        ll sum = 0;
        urep(i,n,n-k+1)
            sum += a[i];
        if(sum <= w){
            printf("%lld\n", sum);
            continue;
        }
        MEM0(vis);
        ans = 0;
        dfs(0,0,0);
        printf("%lld\n", ans);
    }
    return 0;
}
改进YOLOv9的CT图像肺结节检测与分类算法:从原理到实战 本文将详细介绍如何改进YOLOv9算法,使其更好地适应CT图像肺结节检测与分类任务。我们将从数据集准备、模型改进、训练优化到最终部署,完整呈现一个端到端的深度学习项目,并提供完整的代码实现。 阅读详情

相关推荐

WPF+Prism+LiveCharts+materialdesignin 搭建WPF开发框架

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容。

T_Tboy的博客 3051

hdu3448 Bag Problem 背包搜索技巧

01背包的题目,但是数据比较大,所以可以用搜索来做     Bag Problem Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/131072 K (Java/Others) Total Submission(s): 670    Accepted Submission(s): 209 Problem

夏天的风 2082

Jmeter压测报告

账户分析压测报告 一、测试内容 本次测试是针对账户分析进行的压力测试,在账户分析查询接口中,只对用户资产查询接口进行压力测试,其中不包含用户签名校验功能。 二、测试方法 本次采用apache的开源测试工具jmeter,采用本地动态拼装请求数据并通过http协议GET方式发送每日盈亏查询请求。并采用1000个用户账号测试访问情况。...

qq_31108731的博客 6627

hdu3448Bag Problem 暴力枚举

//给k个数,问最多取n个,所取的数的和不大于m的最大的和 //暴力枚举所有情况 #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> using namespace std ; const int maxn = 110 ; typedef int ll; ll ans = 0 ; ll a[maxn] ;

ijbuhv的专栏 997

AI订单流异常检测:精准识别与闭环处置

本文系统阐述了订单流AI驱动的可视化与异常解释系统的构建策略。核心包括:1)多维度融合的异常检测技术,结合数据指纹、行为图谱和时序分析实现精准识别;2)分级分类与自动化处置机制,通过规则矩阵和风险熵值量化进行智能决策;3)基于SHAP/LIME的可解释性技术,提升决策透明度;4)千万级数据训练要求,确保模型达到87%以上的F1值。系统采用Flink+PAI实时计算架构,支持从异常检测到根因分析的完整闭环,为电商、金融等领域的订单风险管理提供智能化解决方案。

2401_83000568的博客 1360

【有啥问啥】智能座舱CPD技术:毫米波雷达如何守护儿童安全?

本文深入探讨了智能座舱中CPD(Child Presence Detection)技术如何通过毫米波雷达保障儿童安全。毫米波雷达凭借其穿透性检测、微动感知等优势,成为儿童遗留车内的有效解决方案。文章详细解析了技术原理、系统集成方案及安装指南,为智能座舱安全技术提供了实用参考。

weixin_29193259的博客 357

hdu3448(dfs解二维背包)

链接:点击打开链接 题意:有k个物品,背包容量是m,问最多装n个物品最大的重量(k 代码:#include #include #include #include #include using namespace std; int n,k,w,ans,a[50]; void dfs(int t,int num,int sum){ ans=max(ans,sum); if

stay_accept的专栏 687

疲劳容器的定义_FKM规范针对非焊接构件疲劳强度评估实例介绍(下篇)

一、写在前面FKM Inside ANSYS软件,该软件是在FKM 规范的基础上,在ANSYS Workbench内开发的进行非焊接构件及焊缝静强度和疲劳强度评估的工具包。基于ANSYS计算模型的信息,在图形用户界面定义相关设置,利用有限元分析计算结果,自动嵌入FKM规范要求的静强度计算和疲劳强度计算流程和方法,自动将应力结果和相关物理量传递给工具包,无须手动预先选择评估的热点区域,可以...

weixin_35925298的博客 1885

hdu 3448 Bag Problem dfs求背包问题

Problem Description 0/1 bag problem should sound familiar to everybody. Every earth man knows it well. Here is a mutant: given the capacity

kongming_acm的专栏 850

树莓派4B+WebRTC实现远程监控:5步搞定公网视频流传输(含Node.js配置)

本文详细介绍了如何利用树莓派4B和WebRTC技术,通过5个关键步骤搭建低延迟、高隐私的远程监控系统。重点阐述了WebRTC点对点传输相较于传统方案的优势,并提供了包含Node.js信令服务器配置、树莓派视频流捕获与推送、以及移动端自适应观看页面的完整实现方案,帮助用户实现公网视频流传输。

websocket5live的博客 292

Sigrity OptimizePI IC Device Power Pin Inductance Analysis模式如何计算IC电源管脚电感操作指导

Sigrity OptimizePI IC Device Power Pin Inductance Analysis模式可以计算电容到IC电源管脚的电感,用于评估电容位置对于IC电源管脚的效果,如何分析,以下图为例进行说明。Capacitors:选择层面,这里选择top layer(IC在top层),下方可以选择电容的size,这里选择All Size。IC devices,输入U*, A*, B*, Q*, P*,将所有这些字母开头的器件都识别为IC。模式如何计算IC电源管脚电感操作指导。

weixin_54787054的博客 409

HDU3448Bag Problem题解背包

Bag ProblemTime Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/131072 K (Java/Others)Total Submission(s): 445    Accepted Submission(s): 132Problem Description0/1 bag problem should sound familiar to everybody. Every earth man knows it well. Her

魔神翼 832

Altium Designer应用技巧13: 四层板的拼版方法

本文介绍在Altium Designer中,进行4层板的拼版方法。Altium Designer有多种拼版方法,本文选择最直观的复制、删帖方法来完成,步骤如下: 1、看一下原始文件,如下图所示,我们要对该板进行拼版操作。 2、通过菜单“报告”-“板子信息”得到板子大小,在这里一般切换为mm比较好操作,我们可以使用快捷键"q"。 3、如果是水平拼版,我们需要关心水平长度;如果是垂直拼版...

snmplink的博客 1万+

HDU 3448 Bag Problem

这是一道搜索的背包题目 题意: 有n件物品从中最多选m件,使其总重量不超过v,求能获得的最大重量 有一个很重要的剪枝(是数据的问题还是这个剪枝本身很高效?): 如果重量最大m件物品都不超过v,则答案就是该m件物品之和;或者最轻的物品的重量大于v则答案为0 中间TLE了几次,又WA了几次,好辛苦啊,Orz 1 //#define LOCAL 2 #include...

weixin_30667649的博客 133

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IEM模型,地表粗糙度模拟

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

HDU Bag Problem (并非0/1背包)

Bag Problem Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/131072 K (Java/Others)Total Submission(s): 1011    Accepted Submission(s): 308 Problem Description 0/1 bag problem should ...

weixin_33827965的博客 170

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Codeforces Round #272 (Div. 2) B

Codeforces Round #272 (Div. 2) B

Notdeep__acm的专栏 1372

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Codeforces Round #264 (Div. 2) C

Codeforces Round #264 (Div. 2) C

Notdeep__acm的专栏 1135

Codeforces Round #272 (Div. 2) C

Codeforces Round #272 (Div. 2) C

Notdeep__acm的专栏 1114

codeforces 158D Ice Sculptures (枚举)

题目: D. Ice Sculptures time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output The Berland University is prepar

Notdeep__acm的专栏 1027

Codeforces Round #262 (Div. 2) B

Codeforces Round #262 (Div. 2) B. Little Dima and Equation

Notdeep__acm的专栏 1008

Codeforces Round #275 (Div. 2) A

Codeforces Round #275 (Div. 2) A

Notdeep__acm的专栏 988

Codeforces Round #280 (Div. 2) D

Codeforces Round #280 (Div. 2) D

Notdeep__acm的专栏 887

hdu 5305(爆搜+二染色) Friends

题意:有n个人m对朋友,朋友有两种一种online的,一种face to face的。现在要让你对这些朋友性质进行安排,让每一个人的线上朋友和线下朋友人数是相同的,求满足的方案数。思路直接暴力染色。 然后减减枝。 一个就是对于每个人的度一定是偶数。 另外一个就是染色中,对于一个节点染色的不能超过一半才能继续dfs。参考code:/* #pragma warning (disable: 478

Notdeep__acm的专栏 769

hdu 5288 (预处理+暴力) OO’s Sequence

题意:见题面。思路预处理出每个a[i]左边和右边第一个能整除它的位置L[i]和R[i],然后计算这个值对于答案的贡献的个数。 贡献就是左右区间长度相乘参考code:/* #pragma warning (disable: 4786) #pragma comment (linker, "/STACK:0x800000") */ #include <cassert> #include <ccty

Notdeep__acm的专栏 723
上一篇: hdu 3433(dp+二分) A Task Process
下一篇: hdu 3449(依赖背包) Consumer
Notdeep__acm
博客等级 码龄12年 20粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值