每日算法-java

题目来自蓝桥云

// 这是一个Java程序,用于解决最长不下降子序列问题。
// 问题描述:给定一个整数序列,找到最长的子序列,使得这个子序列是不下降的(即相邻的元素不严格递减)。
// 程序使用了动态规划的方法来解决这个问题。

import java.util.*;

public class Main {
    // n表示序列的长度,m表示背包的容量
    static int n, m;
    // w和t分别表示物品的重量和价值
    static int[] w = new int[256];
    static int[] t = new int[256];
    // dp数组用于存储动态规划的结果
    static long[] dp = new long[1010];

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 读入序列的长度和背包的容量
        n = sc.nextInt();
        m = sc.nextInt();
        // 读入序列中的每个元素的重量和价值
        for (int i = 1; i <= n; i++) {
            w[i] = sc.nextInt();
            t[i] = sc.nextInt() * 1000; // 将时间单位转换为毫秒
        }
        // 使用二分查找法寻找满足条件的最大整数解
        int l = 0, r = 25000000;
        while (l + 1 != r) {
            int mid = l + (r - l) / 2;
            if (check(mid)) {
                l = mid;
            } else {
                r = mid;
            }
        }
        // 输出满足条件的最大整数解
        System.out.println(l);
    }

    // 检查给定速度下是否能完成任务
    public static boolean check(int x) {
        Arrays.fill(dp, -25000000L);
        dp[0] = 0;
        // 遍历物品,更新动态规划表
        for (int i = 1; i <= n; i++)
            for (int j = m; j >= 0; j--)
                // 选择放置或不放置物品
                dp[Math.min(j + w[i], m)] = Math.max(dp[Math.min(j + w[i], m)], dp[j] + t[i] - (long) w[i] * x);
        // 判断是否能完成所有任务
        return dp[m] >= 0;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/595113.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32编译前置条件配置

本文基于stm32f104系列芯片&#xff0c;记录编程代码前需要的操作&#xff1a; 添加库文件 在ST官网下载标准库STM32F10x_StdPeriph_Lib_V3.5.0&#xff0c;解压后&#xff0c;得到以下界面 启动文件 进入Libraries&#xff0c;然后进入CMSIS&#xff0c;再进入CM3&#xff…

这些接口测试工具你一定要知道

接口测试工具 接口测试工具如图&#xff1a; 1.Fiddler 首先&#xff0c;这是一个HTTP协议调试代理工具&#xff0c;说白了就是一个抓http包的工具。web测试和手机测试都能用到这个工具。既然是http协议&#xff0c;这个工具也能支持接口测试。 2.PostMan Postman一款非常流行…

视频号怎么做有收益,上传短视频怎么挣钱

比如说抖音有中视频流量收益&#xff0c;B站有创作激励计划流量收益&#xff0c;如今在微信端不仅有公众号流量主收益&#xff0c; 现在视频号还推出了创造分成流量收益&#xff01; 对于我们普通人来说无异于又一个机会&#xff0c;能不能抓得住就看你能不看懂本Sir今天的这…

JDK 17有可能代替 JDK 8 吗

不好说&#xff0c;去 Oracle 化是很多公司逐步推进的政策。 JVM 有 OpenJ9。很多公司可能会用 IBM 的版本。 JDK 这东西&#xff0c;能用就不会升级。 JDK 太基础了&#xff0c;决定了后面的很多 jar 的版本。 https://www.ossez.com/t/jdk-17-jdk-8/14102

通过Matlab实现Hermite基函数进行信号拟合,可应用于信号降噪

利用Hermite基函数的Hermite近似&#xff0c;在不牺牲精度的情况下&#xff0c;实现对时序信号的降噪&#xff0c;文中图片以心电信号QRS波群滤除高频干扰为例。 1.知识背景 Hermite正交多项式是一类重要的正交多项式&#xff0c;它们起源于数学中的Hermite函数和特殊函数理论…

第28章-PPPoE

1. 以太网接入的典型应用 1.1. IP技术的应用与发展 1.2. 以太网接入的典型应用场景之一——大型园区接入的典型应用 2. PPPoE技术的基本原理 2.1. 技术背景 2.2. PPPoE工作原理 2.3. PPPoE的两个阶段&#xff1a;Discovery阶段和PPPSession阶段 2.4. PPPoE的帧结构 2.5. PPPoE…

【精品毕设推荐】搜索引擎的设计与实现

点击免费下载原文及代码 摘要 我们处在一个大数据的时代&#xff0c;伴随着网络信息资源的庞大&#xff0c;人们越来越多地注重怎样才能快速有效地从海量的网络信息中&#xff0c;检索出自己需要的、潜在的、有价值的信息&#xff0c;从而可以有效地在日常工作和生活中发挥作…

【NI 国产替代】cDAQ-9178, 8槽USB CompactDAQ机箱,国产数据采集卡控制器进口替代方案

8槽USB CompactDAQ机箱 cDAQ-9178是专为小型便携式传感器测量系统而设计的总线供电CompactDAQ USB机箱。机箱通过即插即用的USB可轻松连接传感器和电气测量。该机箱还可控制C系列I/O模块与外部主机之间的定时、同步和数据传输。机箱可以搭配不同的C系列I/O模块组合&#xff0c…

【C++】cin输入和cout输出

cin和cout简介 cin可以从键盘中读取数据&#xff0c;cout可以把数据打印到显示器上&#xff0c;cout配合endl可以打印换行符。cin、cout和endl是在iostream头文件内声明的&#xff0c;使用时必须#include包含iostream头文件。cin、cout和endl都在命名空间std里&#xff0c;参考…

区块链交易所开发

在当今数字化时代&#xff0c;区块链技术以其独特的去中心化、安全性和透明性&#xff0c;正在逐步改变我们的生活。其中&#xff0c;区块链交易所作为连接区块链技术与广大投资者的桥梁&#xff0c;其开发与发展备受关注。本文将从技术进步与市场需求两个维度&#xff0c;探讨…

抖音小店达人佣金应该怎么结算呢?给达人设置多少佣金合适?

大家好&#xff0c;我是电商小V 咱们在运营抖音小店的时候一定会遇到被达人催促结算佣金的情况&#xff0c;咱们给达人合作的时候都会遇到过新手达人&#xff0c;就是给咱们直播带货之后催促咱们赶紧结算商品的佣金&#xff0c; 但是咱们都需要知道一点&#xff0c;那就是小店的…

VTK —— 三、简单操作 - 示例2 - 计算从3D点到直线的距离(附完整源码)

代码效果 本代码编译运行均在如下链接文章生成的库执行成功&#xff0c;若无VTK库则请先参考如下链接编译vtk源码&#xff1a; VTK —— 一、Windows10下编译VTK源码&#xff0c;并用Vs2017代码测试&#xff08;附编译流程、附编译好的库、vtk测试源码&#xff09; 教程描述 本…

跟TED演讲学英文:How to govern AI — even if it‘s hard to predict by Helen Toner

How to govern AI — even if it’s hard to predict Link: https://www.ted.com/talks/helen_toner_how_to_govern_ai_even_if_it_s_hard_to_predict? Speaker: Helen Toner Date: April 2024 文章目录 How to govern AI — even if its hard to predictIntroductionVocabu…

Hadamard Product(点乘)、Matmul Product(矩阵相乘)和Concat Operation(拼接操作)在神经网络中的应用

Hadamard乘积&#xff08;Hadamard Product&#xff09;&#xff0c;矩阵乘法&#xff08;Matmul Product&#xff09;和拼接操作&#xff08;Concatenation Operation&#xff09;在神经网络中的使用情况如下&#xff1a; Hadamard Product点乘、内积&#xff1a; Hadamard乘…

编程入门(六)【Linux系统基础操作一】

读者大大们好呀&#xff01;&#xff01;!☀️☀️☀️ &#x1f525; 欢迎来到我的博客 &#x1f440;期待大大的关注哦❗️❗️❗️ &#x1f680;欢迎收看我的主页文章➡️寻至善的主页 文章目录 &#x1f525;前言&#x1f680;Linux操作系统介绍与环境准备Linux操作系统介…

Kafka源码分析(五) - Server端 - 基于时间轮的延时组件

系列文章目录 Kafka源码分析-目录 一. 背景 Kafka内部涉及大量的"延时"操作&#xff0c;比如收到PRODUCE请求后可为副本等待一个timeout的时间后再响应客户端。 那我们讨论一个问题&#xff1a;Kafka为什么自己实现了一个延时任务组件&#xff0c;而不直接使用ja…

《从Paxos到Zookeeper》——第五、六章:经典应用场景

目录 第五章 使用Zookeeper 5.1 服务端部署与运行 5.2 客户端相关 5.2.1 客户端运行 5.2.2 客户端命令 5.3 Java客户端API 5.4 开源客户端 第六章 经典应用场景 6.1 典型应用场景及实现 6.1.1 数据发布/订阅&#xff08;全局配置中心&#xff09; 6.1.2 负载均衡&#xff08;Lo…

ChatGPT Web Midjourney一键集成最新版

准备工具 服务器一台 推荐使用浪浪云服务器 稳定 安全 有保障 chatgpt api 推荐好用白嫖的api 项目演示 项目部署 浏览器访问casaos 添加软件原添加 https://gitee.com/langlangy_1/CasaOS-AppStore-LangLangy/raw/master/chatmjd.zip 安装此软件 等待安装 安装后再桌面设置…

什么是模版方法模式,有哪些应用?

模板方法模式是一种行为设计模式&#xff0c;他的主要作用就是复用代码。在很多时候&#xff0c;我们的代码中可能会有-些公共的部分并且还有一些定制的部分&#xff0c;那么公共这部分就可以定义在一个父类中&#xff0c;然后将定制的部分实现在子类中。这样子类可以根据需要扩…

TRIZ理论助力充电桩产业跨越技术瓶颈,实现产业升级!

随着新能源汽车市场的迅猛发展和电动汽车保有量的不断增加&#xff0c;充电桩作为电动汽车的“能量补给站”&#xff0c;其重要性日益凸显。然而&#xff0c;充电桩产业在发展过程中也面临着诸多技术瓶颈&#xff0c;如何突破这些瓶颈&#xff0c;推动充电桩产业升级成为行业亟…
最新文章