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

动态规划-蓝桥杯-健身

在这里插入图片描述
这是一个完全背包的题,可以利用完全背包来解决。

//package com.js.datastructure.recursion.蓝桥.国特训练营.动态规划线性DP;import java.util.ArrayList;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int[] kkk = new int[21];kkk[0] = 1;for (int i = 1; i < 21; i++) {kkk[i] = kkk[i-1] * 2;}//1~n天中选择一些日子健身//有m个健身计划,第i个健身计划,需要2^ki天,获得健身增益si//有q天有其他安排//int n = scanner.nextInt();int m = scanner.nextInt();int q = scanner.nextInt();int[] t = new int[q];for (int i = 0; i < q; i++) {t[i] = scanner.nextInt();}int[] k = new int[m];int[] s = new int[m];//记录值for (int i = 0; i < m; i++) {k[i] = kkk[scanner.nextInt()];s[i] = scanner.nextInt();}//定义dp[i]为间隔天数为i时的最大收益数,转化为完全背包,正序遍历long[] dp = new long[n+1];for (int i = 0; i < m; i++) {if(k[i] > n){continue;}dp[k[i]] = Math.max(s[i],dp[k[i]]);for (int j = 0; j < n+1; j++) {if(dp[j] != 0 && j + k[i] < n+1){dp[j + k[i]] = Math.max(dp[j] + s[i],dp[j + k[i]]);}}}//处理dp数组,满足题目中的int now = 0;for (int i = 0; i < n + 1; i++) {if(dp[i] != 0){now = i;}else {dp[i] = dp[now];}}//把时间段摘出来,进行填充ArrayList<Integer> time = new ArrayList<>();time.add(t[0] - 1);for (int i = 1; i < q; i++) {time.add(t[i] - t[i-1] - 1);}time.add(n - t[q-1]);long ans = 0;for(int tt : time){ans = ans + dp[tt];}System.out.println(ans);}
}
http://www.xdnf.cn/news/8665.html

相关文章:

  • Apache OFBiz 17.12.01 的远程命令执行漏洞 -Java 反序列化 + XML-RPC 请求机制
  • MCP技术体系介绍
  • ETL工具:Kettle,DataX,Flume,(Kafka)对比辨析
  • Java高频面试之并发编程-20
  • 03. C#入门系列【变量和常量】编程世界里的“百变魔盒”与“永恒石碑”
  • XSS脚本攻击-DDoS僵王博士-SQL注入-考试周前的邮件
  • C 语言学习笔记
  • python的pip怎么配置的国内镜像
  • CodeBuddy实现图片压缩工具
  • 第 29 场 蓝桥·算法入门赛
  • Java程序员学从0学AI(三)
  • 实验7 HTTP协议分析与测量
  • LangGraph实现多智能体的方法
  • AI大模型核心基础:向量与张量原理及实践应用指南
  • Level1.7列表
  • 内存越界(Memory Out-of-Bounds)详解
  • 数字图像处理:基于 hough 变换的图像边缘提取
  • vector中reserve导致的析构函数问题
  • MySQL主从同步原理
  • 大模型推理 memory bandwidth bound (4) - Speculative Decoding
  • 【Bluedroid】蓝牙HID Host virtual_unplug全流程源码解析
  • 【笔记】关于synchronized关键字的底层原理之我流理解(未完)
  • TReport组件指南总结
  • C++ 继承详解:基础篇(含代码示例)
  • 【算法】:动态规划--背包问题
  • Linux常用下载资源命令
  • OpenLayers 加载导航与基本操作控件
  • AD9268、AD9643调试过程中遇到的问题
  • Linux的读写屏障
  • Mysql 通过案例快速学习常见操作