(第三场) A PACM Team 【dp,五维背包】

UsageLog电脑使用记录软件 立即下载

 

链接:https://www.nowcoder.com/acm/contest/141/A
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
Special Judge, 64bit IO Format: %lld

题目描述

Eddy was a contestant participating in ACM ICPC contests. ACM is short for Algorithm, Coding, Math. Since in the ACM contest, the most important knowledge is about algorithm, followed by coding(implementation ability), then math. However, in the ACM ICPC World Finals 2018, Eddy failed to solve a physics equation, which pushed him away from a potential medal.

Since then on, Eddy found that physics is actually the most important thing in the contest. Thus, he wants to form a team to guide the following contestants to conquer the PACM contests(PACM is short for Physics, Algorithm, Coding, Math).

There are N candidate groups each composed of p i physics experts, a i algorithm experts, c i coding experts, m i math experts. For each group, Eddy can either invite all of them or none of them. If i-th team is invited, they will bring g i knowledge points which is calculated by Eddy's magic formula. Eddy believes that the higher the total knowledge points is, the better a team could place in a contest. But, Eddy doesn't want too many experts in the same area in the invited groups. Thus, the number of invited physics experts should not exceed P, and A for algorithm experts, C for coding experts, M for math experts.

Eddy is still busy in studying Physics. You come to help him to figure out which groups should be invited such that they doesn't exceed the constraint and will bring the most knowledge points in total.

输入描述:

The first line contains a positive integer N indicating the number of candidate groups. Each of following N lines contains five space-separated integer p i, ai, ci, mi, gi indicating that i-th team consists of pi physics experts, ai algorithm experts, ci coding experts, mi math experts, and will bring gi knowledge points. The last line contains four space-separated integer P, A, C, M indicating the maximum possible number of physics experts, algorithm experts, coding experts, and math experts, respectively.
1 ≤ N ≤ 36 0 ≤ pi,ai,ci,mi,gi ≤ 36 0 ≤ P, A, C, M ≤ 36

输出描述:

The first line should contain a non-negative integer K indicating the number of invited groups. The second line should contain K space-separated integer indicating the index of invited groups(groups are indexed from 0).
You can output index in any order as long as each index appears at most once. If there are multiple way to reach the most total knowledge points, you can output any one of them. If none of the groups will be invited, you could either output one line or output a blank line in the second line.

case1:

输入

2

1 0 2 1 10

1 0 2 1 21

1 0 2 1

输出

1

1

case2:

输入

1 2 1 1 0 31

1 0 2 1

输出

0

 

 

题目大意:有一个四维背包,求取得最大值的方式(即有多少组,和具体组的 index)

思路:背包,但是要注意数据的类型要用short或者char,否则会爆内存。其次不能用滚动数组优化,因为要回溯到具体哪一组。做法一就是单纯的五维背包

状态:dp[ i ][ p ][ a ][ c ][ m ] 走了 i 组背包容量为 p, a, c, m 的最大值

状态转移: dp[ i ][ p ][ a ][ c ][ m ] = max(dp[i-1][ p ][ a ][ c ][ m ], dp[i-1][ p-ip[i] ][ a-ia[i] ][ c-ic[i] ][ m-im[i] ]);

这里回溯答案的话,用一个bool in[ i ][ p ][ a ][ c ][ m ]记录在当前状态有没有取第 i 组;

 

AC code:

 1 #include <vector>
 2 #include <cstdio>
 3 #include <iostream>
 4 #include <algorithm>
 5 #define INF 0x3f3f3f3f
 6 using namespace std;
 7 
 8 const int MAXN = 37;
 9 
10 short dp[MAXN][MAXN][MAXN][MAXN][MAXN];
11 int ip[MAXN], ia[MAXN], ic[MAXN], im[MAXN], g[MAXN];
12 bool in[MAXN][MAXN][MAXN][MAXN][MAXN];
13 int N, P, A, C, M;
14 
15 void slv()
16 {
17     for(int i = 0; i <= N; i++)      ///初始化
18     for(int p = 0; p <= P; p++)
19     for(int a = 0; a <= A; a++)
20     for(int c = 0; c <= C; c++)
21     for(int m = 0; m <= M; m++)
22         in[i][p][a][c][m] = false;
23 
24     for(int i = 1; i <= N; i++)
25     {
26         for(int p = 0; p <= P; p++)   ///省去下面比较前一个取或者不取,一律初始化为不取
27         for(int a = 0; a <= A; a++)
28         for(int c = 0; c <= C; c++)
29         for(int m = 0; m <= M; m++)
30         {
31             dp[i][p][a][c][m] = dp[i-1][p][a][c][m];
32         }
33         for(int p = P; p >= ip[i]; p--)
34         for(int a = A; a >= ia[i]; a--)
35         for(int c = C; c >= ic[i]; c--)
36         for(int m = M; m >= im[i]; m--)
37         {
38             if(dp[i][p][a][c][m] < (dp[i-1][p-ip[i]][a-ia[i]][c-ic[i]][m-im[i]]+g[i]))
39             {
40                 dp[i][p][a][c][m] = dp[i-1][p-ip[i]][a-ia[i]][c-ic[i]][m-im[i]]+g[i];
41                 in[i][p][a][c][m] = true;         ///取了第 i 组
42             }
43         }
44     }
45     vector<int>ans;
46     for(int i = N; i > 0; i--)
47     {
48         if(in[i][P][A][C][M])
49         {
50             ans.push_back(i-1);   ///题目下标从 0 开始
51             P-=ip[i];             ///但是这里数组下标是从 1 开始
52             A-=ia[i];
53             C-=ic[i];
54             M-=im[i];
55         }
56     }
57 
58     printf("%d\n", (int)ans.size());
59     for(size_t i = 0; i < ans.size(); i++)
60     {
61         printf("%d", ans[i]);
62         if(i+1 < ans.size()) printf(" ");
63         else printf("\n");
64     }
65 }
66 int main()
67 {
68     scanf("%d", &N);
69     for(int i = 1; i <= N; i++)
70     {
71         scanf("%d %d %d %d %d", &ip[i], &ia[i], &ic[i], &im[i], &g[i]);
72     }
73     scanf("%d %d %d %d", &P, &A, &C, &M);
74     slv();
75     return 0;
76 }

 

最新推荐-2026年固态电池+锂电正极+硅基负极等关键技术实践PPT合集(55份).zip 2026年最新固态电池+锂电正极+硅基负极等关键技术实践PPT合集,共55份。供大家查阅。 一、固态电池 1.全固态电池用硅基负极材料研究进展 2.全固态电池硅基负极的开发思考 3.功能型固态电解质设计及界面调控 4.固态电池及关键材料研发与产业化进展 5.固态电池的产业化应用探索 6.固态锂电池开发现状及未来展望 7.固态锂离子电池正极结构设计与材料选择 8.固态锂金属电池设计与应用 9.硫化物全固态电池石墨和硅负极性能调控技术 10.硫化物固态电解质行业应用 11.聚合物基固态电解质与固态电池的关键技术 12.蜂鸟声共振技术-固态电池产业化的革命性创新 13.长安汽车固态电池应用探索 14.高安全性固态电池技术发展趋势 15.高性能硫化物全固态锂电池解决方案 16.高硅体系的膨胀解决方案 二、硅基负极 1.化学气相沉积碳包覆技术在硅基负极材料中的应用 2.新型粘结剂解决 硅基负极膨胀问题 3.氧化亚硅负极材料化学预锂化与界面设计 4.流化床法生产磷酸铁锂及硅负极材料研究 5.石墨烯包覆硅碳负极 6.硅基材料的发展现状及展望 7.硅基负极与固态电解质 8.硅基负极技术与进展 9.硅基负极材料体积膨胀解决策略 10.硅基负极材料及其结构设计 11.硅基负极材料的冶金法制备 12.硅基负极材料的发展与应用 13.硅基负极材料研究进展 14.硅基负极材料:从基础研究到产业应用 15.硅基负极析锂行为及调制研究 16.硅碳负极低成本制造技术报告 17.硅碳负极制备用多孔碳的开发 18.硅碳负极挑战和进展 19.硅碳负极新路线及关键材料制备 20.硅碳负极锂离子电池应力特性研究 21.锂电石墨负极材料工程化技术进步 22.锂离子电池负极材料 23.高容量石墨烯-硅基复合负极材料的研究进展 三、锂电正极 1.基于AI和图论结构化学的锂电池的材料基因探索 2.废旧磷酸铁锂电池梯次及再生利用进展 3.电动汽车大功率充电标准体系与检测认证实践 4.磷酸铁及磷酸铁锂异物防控管理 5.磷酸铁锂正极材料:液相法合成及产业化应用研究 6.磷酸锰铁锂正极材料的研究现状 7.车用动力电池安全标准化工作进展及未来展望 8.锂电层状氧化物正极材料的原子尺度失效机制 9.锂电正极材料工厂异物防控管理图册 10.锂离子电池高熵正极材料成分设计及储锂机制研究 11.高压实磷酸铁锂正极材料生产工艺配方.docx 12.高安全正极材料添加剂提升三元锂电安全性 13.高比能富锂锰基电池关键技术 14.高能量密度锂离子电池正极材料及应用研究 15.高镍单晶三元正极材料研究 16.三元高电压单晶正极材料 立即下载

相关推荐

Zotero 是学术管理领域非常优秀的软件 它功能成熟、生态稳定,帮助许多科研人员建立了最初的文献归档体系

Zotero 是学术管理领域非常优秀的软件。它功能成熟、生态稳定,帮助许多科研人员建立了最初的文献归档体系。但在当下日常科研与深度使用各类 Agent 时,传统的文献工具链暴露出一些断点:上下文严重分散:论文存储在 Zotero,笔记记在 Obsidian,与模型的推导和分析留在各个网页对话框中。三者数据彼此隔离,当需要 Agent 结合某篇具体论文与历史笔记进行深入推导时,用户必须反复手动复制粘贴。文献格式对模型不友好:人类习惯阅读排版良好的 PDF 文件;但对于模型而言,直接解析双栏排版、跨页表格、复杂数学公式和交叉引用的成本极高,极易产生识别错误与幻觉。结构化 Markdown 与 LaTeX 才是模型容易准确理解的格式。维护成本较高:AI 伴读、全文翻译、笔记同步等高频需求,往往需要安装和调试多个社区插件,配置门槛高且在版本升级时容易出现兼容性问题。批量自动化能力有限:通过 Deep Research 或自动化检索工具发现的大量文献,目前仍需人工在浏览器中逐篇点击保存,难以顺畅衔接批量研究流。Agentero 并非旨在替代 Zotero,而是探索一种人与 Agent 协同处理科研上下文的新方式:人类负责:提出研究问题、进行学术价值判断、深度研读与核心结论推导;Agent 负责:批量检索筛选、元数据抓取、图表与公式提取、引用关系梳理及基础总结。

Windows用户文件夹移动后出现两个文件夹的注册表原理与修复指南

在Windows操作系统中,用户文件夹(如桌面、文档)的路径管理依赖于注册表机制。其核心原理涉及Shell Folders和User Shell Folders两个关键注册表项,前者缓存实际路径,后者存储目标指令。当通过图形界面移动文件夹时,若两者数据不同步,就会导致路径映射冲突,产生文件散落或看似“合并”的混乱现象。这种不一致性深刻影响了文件系统的逻辑定位与符号链接的正确创建,是许多数据迁移和系统升级问题的根源。从技术价值看,理解并维护这两个注册表项的一致性,是确保用户配置文件可靠性和数据完整性的基础。在

weixin_30315723的博客 382

基于 .net 8、blazor 、furion 开发的后台管理系统,功能全(完善的用户权限管理、定时任务、附件管理、日志审计、物联网、企业门户等)、技术新

基于 .net 7开发的后台管理系统,系统前后台分离,api 是基于Furion 框架开发,前端是基于ant-design-blazor开发,系统使用技术或框架较新

POJ1170 Shopping Offers(五维背包or状压dp)

Description In a shop each kind of product has a price. For example, the price of a flower is 2 ICU (Informatics Currency Units) and the price of a vase is 5 ICU. In order to attract more customer...

邵光亮的博客 872

材料科学基于电致塑性效应的多场耦合精密成形:难变形合金超薄带材低缺陷轧制工艺

内容概要:本文系统阐述了合金在电、热、力多场耦合作用下的电致塑性精密成形工艺(Electrically-Assisted Rolling, EAR),重点介绍其通过瞬时脉冲电流实现材料“成形时软、用时强”的核心技术原理。该工艺利用电子风力、焦耳热微区软化等非热与热效应协同作用,降低难变形合金的流动应力,提升单道次压下率(如SUS304由33.8%提升至41.5%),显著减少中间退火次数,实现数十微米级极薄带材的高效、低残余应力、高平整度轧制。文章详细分析了工艺参数(电流密度、频率、脉宽、温度窗口等)、装备配置(脉冲电源、绝缘辊系、在线检测)及失效模式控制,并强调需以“变形区有效电流密度”和“窄温区闭环控制”为核心进行工艺设计与优化。; 适合人群:从事金属材料加工、精密轧制、先进成形技术研发的科研人员与工程技术人员,具备材料科学与工程、机械制造或相关领域背景的研发工程师及研究生。; 使用场景及目标:①开发高强钛合金、不锈钢、特种合金等难变形金属的超薄精密箔材(如折叠屏基材、光刻机钢带);②优化现有冷轧工艺,降低能耗与退火次数,提升产品尺寸精度与表面质量;③研究电-热-力多场耦合成形机理,指导新型电辅助制造装备开发。; 阅读建议:本文兼具理论深度与工程实践指导意义,建议结合图表与实测数据理解多机制协同效应,重点关注电流回路设计、温度场闭环控制与参数标定方法,避免直接套用文献参数;在应用中应坚持“实验标定+仿真验证”原则,确保工艺安全性与可重复性。

86 arduino 电机yl_(八)arduino入门:直流电机控制

一、本节介绍在本实验中,您将学习如何使用驱动芯片L293D和SunFounder Uno板控制小型直流(DC)电机的方向和速度。为了使初学者更容易,我们将让直流电机左右旋转,自动加速和减速。二、材料准备1 *小型直流电机1 * L293D1 * Arduino Uno板1 *面包板1 * USB数据线杜邦线三、原理讲解L293D这是一个非常实用的芯片,可以独立控制两台直流电机。在这个实验中,只有一...

weixin_29163857的博客 3571

多校第三场 A PACM Team(01背包 多个重量)

题目链接:https://www.nowcoder.com/acm/contest/141/A 题目大意:有n个物体,每个物体有四个属性限制,p[i],a[i],c[i],m[i].同时他也有的他的价值属性g[i] 背包对这四个属性有个最大值的限制P,A,C,M。所有放入的物体的各项属性的和不能超过他的最大值,求最大的价值是多少,并输出放入了哪几个物体。(物体编号从0开始) 题目思路: 按照...

qq_36782366的博客 269

【Xilinx】如何在petalinux下编译vcu-gst-app以及独立编译vcu-gst-app

Xilinx从2018.1开始,提供了一套基于zcu106的vcu参考设计。里面提供了一套基于GStreamer的程序,即vcu-gst-app。如何脱离petalinux直接编译呢,这里以为例,其他版本也是类似的操作。

王师傅 3041

PACM Team(牛客第三场多校赛+dp+卡内存+打印路径)

题目链接(貌似未报名的不能进去):https://www.nowcoder.com/acm/contest/141/A 题目: 题意:背包题意,并打印路径。 思路:正常背包思路,不过五维的dp很容易爆内存,比赛时无限爆,后面队友提醒用short就过了。不过也可以用滚动减少内存消耗,两种代码实现都贴一下吧~ 五维代码实现如下: 1 #include <set&...

di6499的博客 191

台达B3伺服电机485通讯的调试过程

最近上了一项目,没办法直接把B3伺服接到PLC上去,怎么办?偶说试下直接电脑通过100多米的485线控制好了,定型前的测试就这样展开了。 1、焊CN1口 如果不安装CN1,是开不了机的,要报很多错误,比如SERV EMG ALERT, 上限报警,下限报警什么的,怎么办?直接焊好CN1头子吧,烦了点,但是必要的。 主要接的是11,9,10,32,31,30几个脚,按照图上连接好就是了。 2、 接线路 按照上面的图,接上伺服电机线,编码器线,电源线,包括限位常闭开关、485连线等,就完..

shidong01的博客 1万+

海康威视4G摄像头直连实战:不用萤石云,手把手教你用ISUP SDK搞定跨网段视频流

本文详细介绍了如何通过海康威视ISUP SDK实现4G摄像头的直连通信,提供了一套零平台费、自主可控的技术方案。文章涵盖技术选型、设备端配置、服务器端开发及高级应用场景,特别适合中小型安防项目,帮助开发者解决跨网段视频流传输难题,降低长期运营成本。

weixin_27076351的博客 471

牛客多校第三场-A-PACM Team-多维背包的01变种

题目我就不贴了。。。说不定被查到要GG。。。 题意就是我们需要在P,A,C,M四个属性的限制下,找到符合条件的最优解。。。 这样我们就需要按照0/1背包的思路,建立一个五维度数组dp[i][j][k][l][o]但是很明显36^5可能不怎么够用,一般来说就两种思路,吧这种多维数组由int 开成 short,这样岂不是爽歪歪?或者降维嘛。。。这里滚动会降一维,可是不会滚动啊!!!-_-...

92

笔试题-2023-乐鑫-数字IC设计【纯净题目版】

笔试题-2023-乐鑫-数字IC设计【纯净题目版】

w0shishabi的博客 1779

N多校2018d3t1 PACM Team(多维背包+记录路径)

注意记录路径时path要五维,不能滚动数组,因为没有第几个物品来标明顺序的话,就可能在某个物品的dp中导致path 的两个状态对应同一个物品,导致wa或者超时! 还有dp数组可以用short int存储 ac代码: #include<bits/stdc++.h> using namespace std; #define per(i,a,b) for(int i=...

dizhang6486的博客 221

【报错解决】彻底解决 MySQL 登录报错 ERROR 1045 (28000)

MySQL 报错 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 通常是由于用户名或密码错误、权限不足、服务未启动或配置文件异常导致的。通过检查并确认密码、重置 root 用户密码、授予完整权限、校验配置文件以及确保 MySQL 服务正常运行,可以彻底解决该问题。掌握这一流程不仅能够恢复 root 登录,还能保障数据库的安全性与稳定性。

博客 1754

39、高频 LLC 谐振转换控制系统动态优化算法分析与研究

本文针对高频下LLC谐振转换器动态性能差的问题,提出一种基于谐振电容器充放电估计动态切换时间的优化控制算法。通过改进状态轨迹控制方法,突破传统算法在谐振频率与开关频率相等条件下的限制,并结合新型采样策略有效抑制电压过冲。算法在MATLAB和SABER中完成仿真验证,并搭建基于STM32F407的原型系统进行测试,结果表明该方法显著缩短动态响应时间,提升系统稳定性。研究为高频、高功率密度开关电源的动态优化提供了可行解决方案。

linux6sysadmin的博客 113

牛客多校第三场 A- PACM Team 背包/记忆路径

https://www.nowcoder.com/acm/contest/141#question 一眼背包,用四维dp记录在A,B,C,D条件限制下可以获得的最大知识点,但是题目要求输出路径,在输入中包含0这样的样例,原本的递归寻找路径变的不可行,就需要开五维dp记录在i组条件下ABCD的最大知识点,空间复杂度为36^ 5,测试可以通过,但本题有更加优秀的解法,就是在原本四维dp的条件...

weixin_30568591的博客 135

(2-4-01)目标检测与分割:地面提取(1)

请看下面的例子,生成了虚拟 LiDAR 点云数据,然后使用 DBSCAN 聚类方法进行 LiDAR 地面提取,并根据聚类结果可视化地面和非地面点云。首先生成虚拟 LiDAR 点云数据,然后基于设定的高程阈值进行地面提取,并通过 Open3D 可视化地面和非地面点云。地面提取是LiDAR(激光雷达)数据处理中的一个重要步骤,其目标是从点云数据中分离出地面点,即地面表面上的点。LiDAR点云数据通常包含地面点和非地面点(例如建筑物、树木等),地面提取的目标是从这些点中准确识别和提取地面点。

码农三叔 703

牛客多校第三场 A题 PACM Team

是我太菜,01背包不知道怎么记录状态,一开始浪费好久时间,然后发现记录了以后int数组开不下,我并没有想到可以使用short来存,5维dp数组还是超过256mb,于是最后同机房好友提醒我使用bool数组来存dp更新的时候的是否使用了当前的i号物品 #include&lt;bits/stdc++.h&gt; #define X first #define Y second #define pb ...

binarycopycode 230

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

牛客网暑期ACM多校训练营(第三场)A PACM Team【DP路径】

https://www.nowcoder.com/acm/contest/141/A 拒绝开第五维,通过经状态压缩的path来储存路径。 #include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;iostream&amp;gt; #include &amp;lt;algorithm&amp;gt; #include &amp;l

Irish_Moonshine的博客 332

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

牛客网暑期ACM多校训练营(第三场) - A PACM Team (01背包+状态压缩输出路径)

https://www.nowcoder.com/acm/contest/141/A   题意: 4维的01背包。每个数字都小于等于38。 所有开4维的空间是够的。 因为物品数量只有38,可以用状态压缩来记录路径。   你也可以开short数组来强行开五维数组。   #include &lt;cstdio&gt; #include &lt;cstring&gt; #includ...

Mr_Treeeee的博客 337

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

牛客网暑期ACM多校训练营(第三场) PACM Team (01背包的多条件限制)

链接:https://www.nowcoder.com/acm/contest/141/A 来源:牛客网   You can output index in any order as long as each index appears at most once. If there are multiple way to reach the most total knowledge point...

辞树 207
上一篇: POJ 1745 【0/1 背包】
下一篇: (第四场)G Maximum Mode 【YY+暴力】
莜莫oO
博客等级 码龄9年 7粉丝 226原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值