首页 > 其他分享 >牛客网-活动礼品采购

牛客网-活动礼品采购

时间:2023-07-18 22:14:53浏览次数:27  
标签:hots int 牛客 礼品 prices 采购 public dp

1. 题目

读题

 

小V负责一次活动礼品采购,每一款礼品的受欢迎程度(热度值)各不相同,现给出总金额以及各礼品的单价和热度值,且每个礼拜只采购一个,如何购买可以使得所有礼品的总热度值最高。(背包问题)

输入:第一行是一个整数,表示总金额(不大于1000)

第二行是一个长度为n的正整数数组,表示礼品单价(n不大于100)

第三行是一个长度为n的正整数数组,表示对应的礼品热度值

 

考查点

 背包问题

2. 解法

思路

 

代码逻辑

 

具体实现

public class GiftHot {

public static void main(String[] args) {
int m = 1000;
int[] prices = {200, 600, 100, 180, 300, 450};
int[] hots = {6, 10, 3, 4, 5, 8};
System.out.println(pack(m, prices, hots));
System.out.println(pack2(m, prices, hots));
}

public static int pack(int m, int[] prices, int[] hots) {
int n = prices.length;

int[][] dp = new int[n + 1][m + 1];
for (int i = 1; i <= n; i++) {
for (int j = 0; j <= m; j++) {
if (j >= prices[i - 1]) {
dp[i][j] = Math.max(dp[i - 1][j], dp[i - 1][j - prices[i - 1]] + hots[i - 1]);
} else {
dp[i][j] = dp[i - 1][j];
}

}
}
return dp[n][m];

}

public static int pack2(int m, int[] prices, int[] hots) {
int n = prices.length;

int[][] dp = new int[n + 1][m + 1];

for (int i = 1; i <= n; i++) {
for (int j = 0; j <= m; j++) {
for (int k = 0; k * prices[i - 1] <= m; k++) {
if (k * prices[i - 1] <= j) {
dp[i][j] = Math.max(dp[i - 1][j], dp[i - 1][j - k * prices[i - 1]] + k * hots[i - 1]);
} else {
dp[i][j] = dp[i - 1][j];
}


}
}
}
return dp[n][m];
}

}

 

3. 总结

标签:hots,int,牛客,礼品,prices,采购,public,dp
From: https://www.cnblogs.com/shoshana-kong/p/17564250.html

相关文章

  • 牛客网-手机屏幕解锁模式
    1.题目读题[编程题]手机屏幕解锁模式  手机屏幕解锁模式现有一个3x3规格的Android智能手机锁屏程序和两个正整数m和n,请计算出使用最少m个键和最多n个键可以解锁该屏幕的所有有效模式总数。其中有效模式是指:1、每个模式必须连接至少m个键和最多n个键;2、所有的......
  • 牛客网-报数
    1.题目读题[编程题]报数今年7月份迎来了新入职的大学生,现在需要为每个新同事分配一个工号。人力资源部同事小v设计了一个方法为每个人进行排序并分配最终的工号,具体规则是:将N(N<10000)个人排成一排,从第1个人开始报数;如果报数是M的倍数就出列,报到队尾后则回到队头继续报,直到所......
  • 牛客网-vivo智能手机产能
    1.题目读题vivo智能手机产能(AC)在vivo产线上,每位职工随着对手机加工流程认识的熟悉和经验的增加,日产量也会不断攀升。假设第一天量产1台,接下来2天(即第二、三天)每天量产2件,接下来3天(即第四、五、六天)每天量产3件……以此类推,请编程计算出第n天总共可以量产的手机数量。......
  • 牛客网-数位之积
    1.题目读题 数位之积(AC)现给定任意正整数n,请寻找并输出最小的正整数m(m>9),使得m的各位(个位、十位、百位……)之乘积等于n,若不存在则输出-1。考查点 2.解法思路 代码逻辑 具体实现 3.总结......
  • 牛客网-回文字符串
    1.题目读题 回文字符串(AC)回文字符串就是正读和反读都一样的字符串,如“viv”、“nexen”、“12321”、“qqq”、“翻身把身翻”等。给定一个非空字符串str,在最多可以删除一个字符的情况下请编程判定其能否成为回文字符串;如果可以则输出首次删除一个字符所能得到的回文字......
  • 牛客网-游戏地图路径
    1.题目读题 游戏中心的运营小伙伴最近接到一款新游戏的上架申请,为了保障用户体验,运营同学将按运营流程和规范对其做出分析评估。经过初步了解后分析得知,该游戏的地图可以用一个大小为n*n的矩阵表示,每个元素可以视为一个格子,根据游戏剧情设定其中某些格子是不可达的(比如建......
  • Train-金蝶系统--合同模块-采购端
    系统介绍以及为何应用系统--金蝶云星辰_云星辰_财务软件_税务软件_进销存软件_金蝶精斗云(jdy.com)具体模块操作指导手册,stepbystep 合同基础资料合同起草合同签订--用印申请合同台账合同执行--收款管理--付款管理--发票管理--郃翅合同参数设置采购合同销售合......
  • 【2023.07.17】牛客&第四范式多校Day1(华中科技大学Round)过题小记
    D-Chocolate(博弈论)12分钟过题。签到。K-Subdivision(图论、搜索)1小时21分过题,签到。如果给定的是一棵树的话,新增的点一定位于连接叶子节点的那条边上、否则就是已有的点。然而这是一张图,所以我们可以使用\(\ttbfs\)将其近似的转化为一棵树:当某个点(非其父节点)被第二次遍历......
  • 牛客多校2023
    R17.17开场三个人都有点不在状态,过了十分钟我才猜到结论,写了一发,过D然后我又开始不在状态,H没想出来,过了一会fyc会了,半个多小时的时候过了fyc很快又会了J,我从K赶过来的时候他已经开写了,我就继续看K,十几分钟后他过了然后fyc提出了分层图的想法,我大概想到了K,他就把K交给我,我中途......
  • 我大意了,刚一放出来就上了牛客网头条了
    大家好,我是阿秀。前段时间,我把自己的剑指offer刷题笔记发在牛客上了(文末分享PDF版本的笔记)。其实在牛客网上已经有很多类似的专栏了,不过为什么我的专栏能上头条呢?成功上首页一个原因是可能长得帅,这我承认,但还是有其他原因的,且听我娓娓道来。真实的原因以下回答摘自本人在知......