当前位置: 首页 > news >正文

2.6基本算法之动态规划2989:糖果

描述

由于在维护世界和平的事务中做出巨大贡献,Dzx被赠予糖果公司2010年5月23日当天无限量糖果免费优惠券。在这一天,Dzx可以从糖果公司的N件产品中任意选择若干件带回家享用。糖果公司的N件产品每件都包含数量不同的糖果。Dzx希望他选择的产品包含的糖果总数是K的整数倍,这样他才能平均地将糖果分给帮助他维护世界和平的伙伴们。当然,在满足这一条件的基础上,糖果总数越多越好。Dzx最多能带走多少糖果呢?
注意:Dzx只能将糖果公司的产品整件带走。

答案:

#include<bits/stdc++.h>
using namespace std;
int a[1000005];
int dp[1005][1005];//dp[i][j]:从i种糖果中选,组成糖果总数量k的倍数
int main(){int n,k;cin>>n>>k;for(int i=1;i<=n;i++){cin>>a[i];}memset(dp,-0x3f,sizeof(dp));/*边界条件:dp[i][j]初始化为负无穷,除了dp[0][0]为0,因为我们这里求的是最大值,另外,必须保证所有的状态是由dp[0][0]转移过来的*/dp[0][0]=0;//dp[0][0]边界条件:0种糖果组成糖果总数量0的倍数是0 for(int i=1;i<=n;i++){//从i种糖果中选for(int j=0;j<k;j++){//求余数从0开始到k-1结束 //1.不选 if(j-a[i]%k>=0){dp[i][j]=max(dp[i-1][j],dp[i-1][j-a[i]%k]+a[i]);}//2.选 else{dp[i][j]=max(dp[i-1][j],dp[i-1][k-abs(j-a[i]%k)]+a[i]);}}}cout<<dp[n][0];return 0;
}

感谢大家的不取关!我   来吗???   回来了!

http://www.lryc.cn/news/406369.html

相关文章:

  • 12.顶部带三角形的边框 CSS 关键字 currentColor
  • Llama中模块参数大小
  • Modbus转EtherCAT网关将Modbus协议的数据格式转换为EtherCAT协议
  • 【开发实战】QT5 + OpenCV4 开发环境配置应用演示
  • “微软蓝屏”事件暴露的网络安全问题及应对策略
  • 白骑士的PyCharm教学基础篇 1.3 调试与运行
  • 爬虫学习1:初学者简单了解爬虫的基本认识和操作(详细参考图片)
  • WHAT - 通过 shadcn 组件源码学习 React
  • grafana对接zabbix数据展示
  • C++ 学习补充 1:短链算法
  • 硅纪元视角 | 语音克隆突破:微软VALL-E 2,Deepfake新纪元!
  • 没有51基础,能不能学好STM32?
  • Web开发:VUE3小白开发入门基础笔记
  • 技术周总结 2024.07.15~07.21周日(Spark性能优化)
  • 提高性能的常见技术
  • LeetCode206 反转链表
  • nginx通过nginx_upstream_check_module实现后端健康检查
  • FastGPT 知识库搜索测试功能解析(二)
  • 双向链表<数据结构 C版>
  • react18+
  • rk3568 OpenHarmony4.1 Launcher定制开发—桌面壁纸替换
  • MySQL:送分or送命 varchar(30) 与 int(10)
  • 【odoo17】后端py方法触发右上角提示组件
  • 1775D - Friendly Spiders
  • 【python】OpenCV—Point Polygon Test
  • 6 Go语言的常量、枚举、作用域
  • 第十一章 数据结构
  • LeetCode704 二分查找
  • [言简意赅] Matlab生成FPGA端rom初始化文件.coe
  • 【QAC】分布式部署下其他机器如何连接RLM