每日算法-java

news/2024/10/22 8:08:52/

题目来自蓝桥云

// 这是一个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.ppmy.cn/news/1455067.html

相关文章

Docker 安装部署 postgres

Docker 安装部署 postgres 1、拉取 postgres 镜像文件 [rootiZbp19a67kznq0h0rgosuxZ ~]# docker pull postgres:latest latest: Pulling from library/postgres b0a0cf830b12: Pull complete dda3d8fbd5ed: Pull complete 283a477db7bb: Pull complete 91d2729fa4d5: Pul…

golang系统内置函数整理

go语言中有很多系统内置的函数&#xff0c; 为了方便学习&#xff0c;对系统内置函数的函数定义 入参和返回值做如下整理&#xff0c;以方便学习和记忆。 Go语言系统级别的内置函数不多&#xff0c;但是包含的知识点可不少&#xff0c;是学习go语言说必须要搞明白的基础知识 …

根据相同的key 取出数组中最后一个值

数组中有很多对象 , 需根据当前页面的值current 和 数组中的key对比 拿到返回值 数据结构如下 之前写法 const clickedItem routeList.find(item > item.key current) // current是当前页 用reduce遍历数组返回最后一个值 const clickedItem routeList.reduce((lastIte…

国内首发 | CSA大中华区启动《AI安全产业图谱(2024)》调研

在人工智能&#xff08;AI&#xff09;技术的快速发展浪潮中&#xff0c;AI安全已成为全球关注的焦点。为应对AI安全带来的挑战&#xff0c;确保AI技术的健康发展&#xff0c;全球范围内的研究机构、企业和技术社区都在积极探索解决方案。 在这一背景下&#xff0c;CSA大中华区…

AcWing 854. Floyd求最短路

Problem: AcWing 854. Floyd求最短路 文章目录 思路解题方法复杂度Code 思路 这是一个经典的图论问题&#xff0c;要求找出所有点对之间的最短路径。我们可以使用Floyd算法来解决这个问题。Floyd算法是一种动态规划的方法&#xff0c;它的基本思想是&#xff1a;对于图中的每一…

windows驱动开发-WDF框架

WDF框架属于对WDM框架的封装&#xff0c;不过看起来&#xff0c;WDF是和WDM是完全不同的两个框架。对于驱动开发来说&#xff0c;WDM框架学习的意义在于理解内核是怎么运作的&#xff0c;毕竟WDM跨越了20年&#xff0c;仍然能够和好的适应windows现在的发展&#xff0c;说明这个…

笔试强训-day17_T2 十字爆破

一、题目链接 十字爆破 二、题目描述 牛牛在玩一个游戏&#xff1a; 一共有n行m列共nm个方格&#xff0c;每个方格中有一个整数。 牛牛选择一个方格&#xff0c;可以得到和这个方格同行、同列的所有数之和的得分。 例如&#xff1a;对于一个22的方格&#xff1a; 1 2 3 4 牛牛…

windows中tomcat本地部署javaweb项目war命令框闪退

今天在给友友做移植生产环境前的测试&#xff0c;在本地tomcat中部署javaweb项目打包好的war&#xff0c;发现运行tomcat文件bin下的exe可执行文件时候&#xff0c;命令框自动闪退。 我慌了&#xff0c;好吧&#xff0c;是我没见过世面&#xff0c;后面想了想jdk初始环境应该没…