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

【华为OD-E卷 - 网上商城优惠活动 100分(python、java、c++、js、c)】

【华为OD-E卷 - 网上商城优惠活动 100分(python、java、c++、js、c)】

题目

某网上商场举办优惠活动,发布了满减、打折、无门槛3种优惠券,分别为:
每满100元优惠10元,无使用数限制,如100 ~ 199元可以使用1张减10元,200 ~ 299可使用2张减20元,以此类推; 92折券,1次限使用1张,如100元,则优惠后为92元; 无门槛5元优惠券,无使用数限制,直接减5元。 优惠券使用限制
每次最多使用2种优惠券,2种优惠可以叠加(优惠叠加时以优惠后的价格计算),以购物200元为例,可以先用92折券优惠到184元,再用1张满减券优惠10元,最终价格是174元,也可以用满减券2张优惠20元为180元,再使用92折券优惠到165(165.6向下取整),不同使用顺序的优惠价格不同,以最优惠价格为准。在一次购物种,同一类型优惠券使用多张时必须一次性使用,不能分多次拆开使用(不允许先使用1张满减券,再用打折券,再使用一张满减券)。 问题
请设计实现一种解决方法,帮助购物者以最少的优惠券获得最优的优惠价格。优惠后价格越低越好,同等优惠价格,使用的优惠券越少越好,可以允许某次购物不使用优惠券。 约定
优惠活动每人只能参加一次,每个人的优惠券种类和数量是一样的。

输入描述

  • 第一行:每个人拥有的优惠券数量(数量取值范围为[0,10]),按满减、打折、无门槛的顺序输入 第二行:表示购物的人数n(1 ≤ n ≤ 10000) 最后n行:每一行表示某个人优惠前的购物总价格(价格取值范围(0, 1000] ,都为整数)。 约定:输入都是符合题目设定的要求的

输出描述

  • 每行输出每个人每次购物优惠后的最低价格以及使用的优惠券总数量 每行的输出顺序和输入的顺序保持一致 备注 优惠券数量都为整数,取值范围为[0, 10] 购物人数为整数,取值范围为[1, 10000] 优惠券的购物总价为整数,取值范围为 (0, 1000] 优惠后价格如果是小数,则向下取整,输出都为整数

用例

用例一:
输入:
3 2 5
3
100
200
400
输出:
65 6
155 7
338 4

python解法

  • 解题思路:
  • 输入解析:

首先输入了四个变量 m, n, k 和 x。其中 m 是满减优惠的最大金额,n 是打折优惠的最大次数,k 是可以用来兑换免费的金额的优惠券数,x 是商品的数量。
随后输入了 x 个商品的价格。
优惠方式:

共有三种优惠方式:满减、打折、无门槛优惠券。
每种优惠方式有不同的计算规则,可以组合成不同的使用顺序。
计算每种优惠方式的最小花费:

对于每个商品,程序通过四种不同的优惠顺序来计算最终花费,并选择其中最优的方案。
先满减,再无门槛优惠券。
先打折,再无门槛优惠券。
先满减,再打折。
先打折,再满减。
每种方案都会计算出最终的花费,并根据花费的大小以及所用优惠券的数量来判断最优方案。
输出:

对于每个商品,输出最小花费和所使用的优惠券数量

# 输入商品数量和不同优惠类型的参数
m, n, k = map(int, input().split())  # m: 满减最大金额,n: 打折次数,k: 免费优惠券数
x = int(input())  # 商品数量
prices = [int(input()) for _ in range(x)]  # 获取商品的价格列表# 满减优惠
def apply_full_sub(price, m):# 满减:每满100元减10元,最多使用m次used = min(price // 100, m)  # 使用的满减次数return price - used * 10, used  # 返回减去满减后的价格和使用的优惠券数量# 打折优惠
def apply_discount(price, n):# 打折:有打折券时,打9折,最多使用n次if n > 0:return int(price * 0.92), 1  # 打9折并返回使用打折券return price, 0  # 没有打折券时不变,返回原价# 免费优惠券
def apply_free(price, k):# 免费优惠券:每5元可以兑换1张优惠券,最多使用k张used = min(k, price // 5)  # 使用的免费券数量return max(0, price - used * 5), used  # 返回最终的价格和使用的优惠券数量# 对每个商品计算最小花费和最优优惠券使用数
for price in prices:min_cost = price  # 初始化最小花费为原价min_coupons = 0  # 初始化最小优惠券数量# 1. 先满减,再无门槛优惠券cost, coupons = apply_full_sub(price, m)cost, c = apply_free(cost, k)if cost < min_cost or (cost == min_cost and coupons + c < min_coupons):min_cost = costmin_coupons = coupons + c# 2. 先打折,再无门槛优惠券cost, coupons = apply_discount(price, n)cost, c = apply_free(cost, k)if cost < min_cost or (cost == min_cost and coupons + c < min_coupons):min_cost = costmin_coupons = coupons + c# 3. 先满减,再打折cost, coupons = apply_full_sub(price, m)cost, c = apply_discount(cost, n)if cost < min_cost or (cost == min_cost and coupons + c < min_coupons):min_cost = costmin_coupons = coupons + c# 4. 先打折,再满减cost, coupons = apply_discount(price, n)cost, c = apply_full_sub(cost, m)if cost < min_cost or (cost == min_cost and coupons + c < min_coupons):min_cost = costmin_coupons = coupons + c# 输出最终的最低花费和使用的优惠券数print(f"{min_cost} {min_coupons}")

java解法

  • 解题思路
  • 输入解析:

m: 满减券数量,表示每满100元可减10元,最多可以使用 m 次。
n: 打折券数量,表示有打折券时可以将价格打9折,最多使用 n 次。
k: 无门槛5元券数量,表示每5元可用1张优惠券兑换,最多使用 k 张。
x: 商品数量,接着会有 x 个商品的价格。
优惠方式:

有三种类型的优惠券:满减券、打折券、无门槛5元券,每种优惠券有不同的应用规则。
需要考虑所有优惠券的组合方式,使用不同的顺序进行计算,找到每个商品的最小花费,并同时最小化所用的优惠券数量。
优化计算:

对于每个商品价格,尝试以下六种不同的优惠组合(顺序不同):
使用满减券后再使用无门槛券
使用无门槛券后再使用满减券
使用打折券后再使用无门槛券
使用无门槛券后再使用打折券
使用满减券后再使用打折券
使用打折券后再使用满减券
对每种组合,计算出最终的花费并比较,选择最优的方案。
输出:

对于每个商品,输出最终的最小花费和所使用的优惠券数量。

import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);// 输入满减券、打折券、无门槛券的数量,以及商品数量int m = sc.nextInt();  // 满减券数量int n = sc.nextInt();  // 92折券数量int k = sc.nextInt();  // 无门槛5元券数量int x = sc.nextInt();  // 商品数量// 输入每个商品的价格int[] prices = new int[x];for (int i = 0; i < x; i++) {prices[i] = sc.nextInt();}// 对每个商品计算最优的价格和优惠券使用数量for (int price : prices) {int[] result = calculateMinPrice(price, m, n, k);System.out.println(result[0] + " " + result[1]);}}// 计算某个商品的最小价格和使用的优惠券数public static int[] calculateMinPrice(int price, int m, int n, int k) {int minPrice = price;  // 初始化最小价格为商品原价int minCoupons = 0;    // 初始化最小使用的优惠券数为0// 1. 使用满减券再使用无门槛券if (m > 0) {int[] afterM = applyM(price, m);  // 应用满减券int[] afterK = applyK(afterM[0], k);  // 在此基础上应用无门槛券// 如果这种方式的价格更优,或者价格相同但使用的优惠券数量更少,则更新最优方案if (afterK[0] < minPrice || (afterK[0] == minPrice && afterK[1] + afterM[1] < minCoupons)) {minPrice = afterK[0];minCoupons = afterK[1] + afterM[1];}}// 2. 使用无门槛券再使用满减券if (k > 0) {int[] afterK = applyK(price, k);  // 应用无门槛券int[] afterM = applyM(afterK[0], m);  // 在此基础上应用满减券if (afterM[0] < minPrice || (afterM[0] == minPrice && afterM[1] + afterK[1] < minCoupons)) {minPrice = afterM[0];minCoupons = afterM[1] + afterK[1];}}// 3. 使用打折券再使用无门槛券if (n > 0) {int[] afterN = applyN(price, n);  // 应用打折券int[] afterK = applyK(afterN[0], k);  // 在此基础上应用无门槛券if (afterK[0] < minPrice || (afterK[0] == minPrice && afterK[1] + afterN[1] < minCoupons)) {minPrice = afterK[0];minCoupons = afterK[1] + afterN[1];}}// 4. 使用无门槛券再使用打折券if (k > 0) {int[] afterK = applyK(price, k);  // 应用无门槛券int[] afterN = applyN(afterK[0], n);  // 在此基础上应用打折券if (afterN[0] < minPrice || (afterN[0] == minPrice && afterN[1] + afterK[1] < minCoupons)) {minPrice = afterN[0];minCoupons = afterN[1] + afterK[1];}}// 5. 使用满减券再使用打折券if (m > 0) {int[] afterM = applyM(price, m);  // 应用满减券int[] afterN = applyN(afterM[0], n);  // 在此基础上应用打折券if (afterN[0] < minPrice || (afterN[0] == minPrice && afterN[1] + afterM[1] < minCoupons)) {minPrice = afterN[0];minCoupons = afterN[1] + afterM[1];}}// 6. 使用打折券再使用满减券if (n > 0) {int[] afterN = applyN(price, n);  // 应用打折券int[] afterM = applyM(afterN[0], m);  // 在此基础上应用满减券if (afterM[0] < minPrice || (afterM[0] == minPrice && afterM[1] + afterN[1] < minCoupons)) {minPrice = afterM[0];minCoupons = afterM[1] + afterN[1];}}// 返回最优方案的最小花费和使用的优惠券数return new int[]{minPrice, minCoupons};}// 应用满减券:每满100元减10元,最多使用m次public static int[] applyM(int price, int m) {int count = Math.min(price / 100, m);  // 计算满减券使用次数return new int[]{price - count * 10, count};  // 返回使用后的价格和使用的满减券数量}// 应用打折券:有打折券时打9折,最多使用n次public static int[] applyN(int price, int n) {if (n > 0) {return new int[]{(int) Math.floor(price * 0.92), 1};  // 打9折并返回使用的打折券数量}return new int[]{price, 0};  // 如果没有打折券,则返回原价}// 应用无门槛5元券:每5元使用1张券,最多使用k张public static int[] applyK(int price, int k) {int used = Math.min(price / 5, k);  // 计算使用的无门槛5元券数量return new int[]{Math.max(0, price - used * 5), used};  // 返回应用后的价格和使用的无门槛券数量}
}

C++解法

  • 解题思路
更新中

C解法

  • 解题思路

更新中

JS解法

  • 解题思路

  • 输入解析:

第一行输入是四个整数 a、b、c 和 d,其中:
a:满减券数量,每个满减券能减10元,最大能减 a 次。
b:打折券数量,最多使用 b 次,每次可以打9折。
c:无门槛5元券数量,最多使用 c 次,每次减少5元。
d:商品的数量,接下来会有 d 个商品的价格。
接下来的 d 行输入每个商品的价格。
计算商品的最小花费:

对于每个商品的价格,尝试不同的优惠组合,计算最小的花费:
使用满减券后再使用打折券、无门槛券。
使用打折券后再使用满减券、无门槛券。
使用无门槛券后再使用满减券、打折券。
通过不同的优惠顺序,找到每个商品的最优花费和使用的优惠券数。
输出:

对每个商品,输出最小花费和所使用的优惠券数量。

const readline = require("readline");const rl = readline.createInterface({input: process.stdin,output: process.stdout,
});const data = [];  // 用于保存所有输入的数据
let a, b, c, d;  // 满减券、打折券、无门槛券的数量以及商品数量// 监听输入的每一行
rl.on("line", (line) => {data.push(line);  // 将输入的每一行保存到数据数组中// 解析第一行数据:a, b, c, dif (data.length === 1) {[a, b, c] = data[0].split(" ").map(Number);  // 使用map转换成整数}// 解析第二行数据:dif (data.length === 2) {d = parseInt(data[1]);  // 商品的数量}// 当接收到商品数量的数据时,开始处理商品价格if (d && data.length === d + 2) {data.shift();  // 删除第一行(包含优惠券数和商品数量的数据)data.shift();  // 删除第二行(包含商品数量的行)const prices = data.map(Number);  // 将商品价格列表转换为数字数组// 调用getRes函数计算每个商品的最优价格和优惠券使用情况getRes(prices, a, b, c);data.length = 0;  // 清空数据数组,准备下一轮输入}
});// 计算每个商品的最小花费和使用的优惠券数
function getRes(prices, a, b, c) {for (let p of prices) {  // 遍历所有商品的价格const res = [];  // 用于存储不同优惠组合后的结果// 1. 使用满减券再使用打折券const m1 = useM(p, a);const mn1 = useN(m1[0], b);  // 使用打折券res.push([mn1[0], a + b - (m1[1] + mn1[1])]);  // 记录最终价格和使用的优惠券数// 2. 使用满减券再使用无门槛券const mk1 = useK(m1[0], c);res.push([mk1[0], a + c - (m1[1] + mk1[1])]);// 3. 使用打折券再使用满减券const n1 = useN(p, b);  // 先应用打折券const nm1 = useM(n1[0], a);  // 再应用满减券res.push([nm1[0], b + a - (n1[1] + nm1[1])]);// 4. 使用打折券再使用无门槛券const nk1 = useK(n1[0], c);res.push([nk1[0], b + c - (n1[1] + nk1[1])]);// 按价格升序排序,如果价格相同,按照使用的优惠券数升序排序res.sort((x, y) => (x[0] === y[0] ? x[1] - y[1] : x[0] - y[0]));// 输出最优结果console.log(res[0].join(" "));}
}// 满减券使用函数:每满100元减10元,最多使用a次
function useM(p, a) {const cnt = Math.floor(p / 100);  // 计算可以使用的满减券次数const used = Math.min(a, cnt);  // 使用的次数不能超过ap -= used * 10;  // 计算应用满减后的价格a -= used;  // 更新剩余的满减券数量return [p, a];  // 返回应用满减后的价格和剩余的满减券数量
}// 打折券使用函数:打9折,最多使用b次
function useN(p, b) {if (b >= 1) {p = Math.floor(p * 0.92);  // 打9折}return [p, b - 1];  // 返回打折后的价格和剩余的打折券数量
}// 无门槛5元券使用函数:每5元使用1张券,最多使用c次
function useK(p, c) {while (p > 0 && c > 0) {  // 只要价格大于0且还有优惠券p -= 5;  // 每次减少5元p = Math.max(p, 0);  // 确保价格不为负数c--;  // 更新剩余的无门槛券数量}return [p, c];  // 返回使用后的价格和剩余的无门槛券数量
}

注意:

如果发现代码有用例覆盖不到的情况,欢迎反馈!会在第一时间修正,更新。
解题不易,如对您有帮助,欢迎点赞/收藏

相关文章:

【华为OD-E卷 - 网上商城优惠活动 100分(python、java、c++、js、c)】

【华为OD-E卷 - 网上商城优惠活动 100分&#xff08;python、java、c、js、c&#xff09;】 题目 某网上商场举办优惠活动&#xff0c;发布了满减、打折、无门槛3种优惠券&#xff0c;分别为&#xff1a; 每满100元优惠10元&#xff0c;无使用数限制&#xff0c;如100 ~ 199元…...

c# Record关键字

在 C# 9.0 中引入了 record 关键字&#xff0c;用于定义记录类型&#xff08;Record Types&#xff09;。记录类型是一种轻量级的数据载体&#xff0c;专注于表示数据&#xff0c;它提供了内置的相等性比较、生成属性和方法等功能&#xff0c;使得编写数据类更加简洁和高效。 …...

Windows 10 自带功能实现大屏、小屏无线扩展

一、添加可选功能 在作为无线投屏对象的「第二屏」设备上&#xff0c;打开 Windows 10 设置并定位至「应用 > 应用和功能」界面&#xff0c;然后点击右侧界面中的「可选功能」选项。 点击可选功能界面顶部的「添加功能」按钮&#xff0c;搜索「无线显示器」模块并选择添加。…...

Python内存管理揭秘:有效避免内存泄漏,提升程序稳定性

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在现代软件开发中,内存管理是确保程序高效、稳定运行的关键因素之一。尽管Python凭借其自动垃圾回收机制简化了内存管理,但内存泄漏问题仍…...

论文分享 | PromptFuzz:用于模糊测试驱动程序生成的提示模糊测试

大语言模型拥有的强大能力可以用来辅助多种工作&#xff0c;但如何有效的辅助仍然需要人的精巧设计。分享一篇发表于2024年CCS会议的论文PromptFuzz&#xff0c;它利用模型提示生成模糊测试驱动代码&#xff0c;并将代码片段嵌入到LLVM框架中执行模糊测试。 论文摘要 制作高质…...

网工日记:FTP两种工作模式的区别

FTP 的主动模式和被动模式在连接建立的发起方、数据传输端口以及对网络环境的适应性等方面存在明显区别&#xff1a; 1. 连接发起方 主动模式&#xff1a;数据连接由服务器主动发起。在控制连接建立后&#xff0c;客户端通过 PORT 命令告知服务器自己用于接收数据的临时端口号…...

clickhouse-backup配置及使用(Linux)

一、下载地址 Releases Altinity/clickhouse-backup GitHub 二、上传到服务器解压安装 自行上传至服务器&#xff0c;解压命令&#xff1a; tar xvf clickhouse-backup-linux-amd64.tar.gz 三、创建软连接 sudo ln -sv build/linux/amd64/clickhouse-backup /usr/local/bin/…...

【每日学点鸿蒙知识】模拟器开启网络、长时任务、兼容性测试支持、丢帧定位、SO中访问rawfile等

1、模拟器如何开启网络&#xff1f; 模拟器使用的是电脑本身的网络&#xff0c;不通过代理即可访问网络。 2、创建子window后&#xff0c;锁屏很短时间内&#xff0c;应用会被杀死&#xff1f; 没开长时任务&#xff0c;锁屏和退后台保活要开长时任务。 应用退至后台后&…...

Python 将文字和二维码 生成到BMP上 可以做标签打印等

直接上代码吧&#xff0c;都有注释&#xff0c;看得明白 将代码复制到main.py文件中&#xff0c;就可以调试了 from PIL import Image, ImageDraw, ImageFont import matplotlib.font_manager as fm from matplotlib.font_manager import FontProperties import os import qr…...

pat 乙级1096 大美数

若正整数 N 可以整除它的 4 个不同正因数之和&#xff0c;则称这样的正整数为“大美数”。本题就要求你判断任一给定的正整数是否是“大美数”。 输入格式&#xff1a; 输入在第一行中给出正整数 K&#xff08;≤10&#xff09;&#xff0c;随后一行给出 K 个待检测的、不超过…...

INT303 Big Data Analytics 笔记

Lecture1 Introduction 不考&#xff01; “Data Mining is the study of collecting, processing, analyzing, and gaining useful insights from data” EXPLORATORY ANALYSIS Make measurements to understand what the data looks like first steps when collecting da…...

Git 解决 everything up-to-date

首先使用git log查看历史提交&#xff0c;找到最新一次提交&#xff0c;比如&#xff1a; PS D:\Unity Projects\CoffeeHouse\CoffeeHouse_BurstDebugInformation_DoNotShip> git log commit a1b54c309ade7c07c3981d3ed748b0ffac2759a3 (HEAD -> master, origin/master)…...

初级算法 - 数组简介

数组简介 在TypeScript中&#xff0c;数组是一种存储同一类型数据的集合类型。数组可以动态调整长度&#xff0c;支持对元素进行增删改查等操作。通过类型注解&#xff0c;可以更清晰地约束数组中元素的类型&#xff0c;提升代码的可维护性。 创建数组的方式 1. 使用字面量方式…...

【毕业设计选题】目标检测方向毕业设计选题推荐 2025

目录 前言 毕设选题 开题指导建议 更多精选选题 选题帮助 最后 前言 大家好,这里是海浪学长毕设专题! 大四是整个大学期间最忙碌的时光&#xff0c;一边要忙着准备考研、考公、考教资或者实习为毕业后面临的升学就业做准备,一边要为毕业设计耗费大量精力。学长给大家整…...

适配器模式详解

适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许将一个类的接口转换成客户所期望的另一个接口&#xff0c;使得原本不兼容的类能够协同工作。这种模式的主要目的是解决接口不匹配的问题&#xff0c;它通过创建一个适配器类&#xff…...

基于 Spring 的自定义注解和请求拦截器实现认证机制

基于 Spring 的自定义注解和请求拦截器实现认证机制 一、基于 Spring 的自定义注解和请求拦截器实现认证机制1. 背景2. 业务场景3. 核心实现3.1 定义自定义注解 IgnoreAuth3.2 定义请求拦截器 AuthInterceptor3.3 配置拦截器3.4 登录接口 4. 小结 一、基于 Spring 的自定义注解…...

Java编程规约:集合处理

文章目录 I 集合处理【强制】【推荐】II 知识扩展I 集合处理 【强制】 不要在 foreach 循环里进行元素的 remove / add 操作。remove 元素请使用 iterator 方式,如果并发操作,需要对 iterator 对象加锁。// 正例: List<String> list = new ArrayList<>(...

python使用PyQt5,整套,桌面应用

安装 安装 pip install PyQt55.7.1 pip install PyQtWebEngine1、创建窗口&#xff0c;按百分比划分 from PyQt5.QtGui import QGuiApplication from PyQt5.QtWidgets import QApplication, QWidget # 创建应用程序实例 app QApplication([]) # 创建主窗口 window QWidget(…...

机械臂的各种标定

文章目录 1. 工具坐标系标定2. 工具手标定3. 手眼标定联系 在工程中&#xff0c;同时使用工具坐标系标定、工具手标定和手眼标定的概念、目的和作用如下&#xff1a; 1. 工具坐标系标定 概念&#xff1a; 工具坐标系标定是指确定工具相对于机器人坐标系的位置和姿态关系的过程…...

金融租赁系统助力企业转型与市场竞争力提升

内容概要 在现代商业环境中&#xff0c;金融租赁系统不仅是一个简单的工具&#xff0c;而是企业转型的重要推动力。通过优化业务流程&#xff0c;提升自动化水平&#xff0c;它帮助企业在复杂的市场中找到自己的立足之地。想象一下&#xff0c;一个企业在使用传统方法时&#…...

正则表达式 - 运算符优先级

正则表达式 - 运算符优先级 正则表达式(Regular Expression,简称Regex)是一种用于处理字符串的强大工具,它通过特定的语法规则来匹配、查找和替换文本中的特定模式。在正则表达式中,运算符的优先级决定了表达式各部分的处理顺序,这对于正确理解和编写正则表达式至关重要…...

【python】unittest单元测试

文章目录 基本使用不同启动方式的区别 基本使用 下面是根据文档写的一个demo&#xff0c;主要的内容基本都包含了&#xff0c;使用时导入自己的业务类测试类中的方法就行。 import unittest# 测试类不强制test开头&#xff0c;仅作为规范。但必须继承unittest.TestCase class…...

【YashanDB知识库】如何使用jdbc向YashanDB批量插入gis数据

本文内容来自YashanDB官网&#xff0c;原文内容请见 https://www.yashandb.com/newsinfo/7817897.html?templateId1718516 以gis表为例&#xff1a; drop table gis; create table gis(id number not null, pos st_geometry not null); 使用如下的java代码片断&#xff0c…...

基于 LangChain 实现数据库问答机器人

基于 LangChain 实现数据库问答机器人 一、简介二、应用场景三、实战案例1、需求说明2、实现思路3、对应源码 一、简介 在 Retrieval 或者 ReACT 的一些场景中&#xff0c;常常需要数据库与人工智能结合。而 LangChain 本身就封装了许多相关的内容&#xff0c;在其官方文档-SQ…...

XIAO ESP32 S3网络摄像头——2视频获取

本文主要是使用XIAO Esp32 S3制作网络摄像头的第2步,获取摄像头图像。 1、效果如下: 2、所需硬件 3、代码实现 3.1硬件代码: #include "WiFi.h" #include "WiFiClient.h" #include "esp_camera.h" #include "camera_pins.h"// 设…...

图像描述/字幕开源模型与数据集全览

图像描述/字幕&#xff08;Image Captioning&#xff09;是用文字描述图像内容的任务&#xff0c;属于计算机视觉和自然语言处理的交叉领域。大多数图像描述系统采用编码器-解码器&#xff08;encoder-decoder&#xff09;框架&#xff0c;其中输入图像被编码为中间表示形式&am…...

关于UE加载osgb数据的研究(一)

最近关于倾斜数据在UE中加载显示的问题,直接转换格式本地加载的方式避免了数据延迟加载、缓存加载,动态刷新等问题,但是也暴露了突出的问题:常规的模型格式会丢失掉倾斜数据的lod,致使效果缺失。 故而需要深入研究一下UE加载osgb数据的方式方法。 首先,我们需得学习一下…...

Hypervisor 的两种类型

文章目录 一、定义 Hypervisor&#xff08;也被称为虚拟机监视器&#xff0c;即Virtual Machine Monitor&#xff0c;VMM&#xff09;是一种创建和运行虚拟机的软件、固件或硬件。它可以在物理主机上划分出多个虚拟的计算环境&#xff0c;使得多个操作系统&#xff08;Guest Op…...

07-ArcGIS For JavaScript--隐藏参数qualitySettings(memory和lod控制)

目录 1、综述2、sceneview.qualitySettings2.1、sceneview.qualitySettings.memoryLimit2.2、lodFactor2.3 additionalCacheMemory 3、结论 1、综述 先上重点&#xff0c;SceneView.qualitySettings为隐藏对象参数&#xff0c;该对象的memoryLimit和lodFactor等值&#xff0c;…...

内训宝企业培训平台 upload/scorm 文件上传致RCE漏洞复现

0x01 产品简介 内训宝企业培训平台是一款专注于企业内部培训的在线平台,由北京内训宝科技有限公司开发并提供服务。旨在为企业提供全方位、个性化的内部培训解决方案。通过该平台,企业可以轻松地组织和管理内部培训活动,提升员工的专业技能和综合素质,进而增强企业的竞争力…...

js按日期按数量进行倒序排序,然后再新增一个字段,给这个字段赋值 10 到1

效果如下图&#xff1a; 实现思路&#xff1a; 汇总数据&#xff1a;使用 reduce 方法遍历原始数据数组&#xff0c;将相同日期的数据进行合并&#xff0c;并计算每个日期的总和。创建日期映射&#xff1a;创建一个映射 dateMap&#xff0c;存储每个日期的对象列表。排序并添加…...

[2025] 如何在 Windows 计算机上轻松越狱 IOS 设备

笔记 1. 首次启动越狱工具时&#xff0c;会提示您安装驱动程序。单击“是”确认安装&#xff0c;然后再次运行越狱工具。 2. 对于Apple 6s-7P和iPad系列&#xff08;iOS14.4及以上&#xff09;&#xff0c;您应该点击“Optinos”并勾选“允许未经测试的iOS/iPadOS/tvOS版本”&…...

修改表字段属性,SQL总结

MYSQl varchar转为mediumtext ALTER TABLE table_name MODIFY COLUMN column_name mediumtext; ALTER TABLE table_name MODIFY COLUMN column_name varchar(255) 1. 修改字段的数据类型 使用 MODIFY COLUMN 可以改变字段的数据类型、长度、默认值或注释&#xff0c;但不会更…...

艾体宝产品丨加速开发:Redis 首款 VS Code 扩展上线!

Redis 宣布推出其首款专为 VS Code 设计的 Redis 扩展。这一扩展将 Redis 功能直接整合进您的集成开发环境&#xff08;IDE&#xff09;&#xff0c;旨在简化您的工作流程&#xff0c;提升工作效率。 我们一直致力于构建强大的开发者生态系统&#xff0c;并在您工作的每一步提…...

PHP 中的魔术常量

概述 PHP提供了9个魔术常数&#xff0c;您可以在PHP应用程序代码中使用。它们是“神奇的”&#xff0c;因为它们是在编译时定义的&#xff0c;不像常规常量&#xff08;您可以自己定义&#xff09;是在运行时定义的。这意味着它们的值可以根据它们在代码中的使用位置而更改。 …...

培训机构Day20

今天还是讲一些基本的js知识点。 知识点&#xff1a; html css &#xff1a;框架结构 样式修饰 javascript&#xff1a;行为交互&#xff0c;动态效果。有逻辑的语言。动态脚本语言。无需编译&#xff0c;解释执行。 寄生在网页上执行。浏览器内核自带js解释器。 js引入三…...

Day62 图论part11

Floyd 算法精讲 Floyd 算法代码很简单&#xff0c;但真正理解起原理 还是需要花点功夫&#xff0c;大家在看代码的时候&#xff0c;会发现 Floyd 的代码很简单&#xff0c;甚至看一眼就背下来了&#xff0c;但我为了讲清楚原理&#xff0c;本篇还是花了大篇幅来讲解。 代码随想…...

【Golang 面试题】每日 3 题(十三)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/UWz06 &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏…...

云手机+Facebook:让科技与娱乐完美结合

移动互联网时代&#xff0c;Facebook作为全球最大的社交媒体平台之一&#xff0c;早已成为企业、品牌和组织竞相角逐的营销阵地。而云手机的出现&#xff0c;则为Facebook营销注入了新的活力&#xff0c;其独特的优势让营销活动更加高效、精准且灵活。本文将深入探讨云手机在Fa…...

2024年总结与展望

23年底的时候&#xff0c;和一大批同事一起转到刚成立的合资公司&#xff0c;当时大家都以为会是好的归宿&#xff0c;毕竟外资文化&#xff0c;投了这么多钱&#xff0c;起码两三年内应该是稳定、不内卷的&#xff0c;似乎可以安心工作&#xff0c;安心生活。2024的开头确实挺…...

标准流,浮动,Flex布局

三个 div 盒子在一一行显示&#xff0c;但是 div 标签默认是独占一行的 想要实现块级盒子在一行&#xff0c;两种方法&#xff0c;浮动和 Flex 布局 浮动之后的盒子&#xff1a;顶对齐&#xff0c;行内块显示特点&#xff08;宽高显示&#xff09; 浮动的盒子会脱标&#xff0c…...

2 、什么是Java中的不可变类

在Java中&#xff0c;不可变类&#xff08;Immutable Class&#xff09;是指一类其对象一旦创建后&#xff0c;就不能更改其状态&#xff08;即对象的字段值不能被修改&#xff09;的类。不可变类提供了一种安全的方式来管理对象&#xff0c;尤其是在并发编程中&#xff0c;能够…...

网络安全技能试题总结参考

对网络安全技能测试相关的试题进行了总结,供大家参考。 一、单选题 1.(单选题)以下属于汇聚层功能的是 A.拥有大量的接口,用于与最终用户计算机相连 B.接入安全控制 C.高速的包交换 D.复杂的路由策略 答案:D 2.(单选题)VLAN划分的方法,选择一个错误选项 A.基于端口…...

基于Python的社交音乐分享平台

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

CP AUTOSAR标准之FlexRayDriver(AUTOSAR_SWS_FlexRayDriver)(更新中……)

1 简介和功能概述 FlexRay驱动程序(Fr)抽象了特定FlexRay通信控制器(CC)的硬件相关实现细节。本规范主要依赖于符合FlexRay规范[13]的FlexRay CC。此外,本规范还支持符合FlexRay规范[14]的旧版FlexRay控制器。本SWS中因支持的FlexRay规范不同而导致的不同行为在适用的情况下以…...

AIDD -人工智能药物设计- DrugChat:多模态大语言模型实现药物机制与属性的全方位预测

DrugChat&#xff1a;多模态大语言模型实现药物机制与属性的全方位预测 今天为大家介绍的是来自加州大学圣地亚哥分校谢澎涛团队的一篇论文。准确预测潜在药物分子的作用机制和性质对于推进药物发现至关重要。然而&#xff0c;传统方法通常需要为每个特定的预测任务开发专门的…...

CP AUTOSAR标准之FlexRayInterface(AUTOSAR_SWS_FlexRayInterface)(更新中……)

1 简介和功能概述 该规范指定了AUTOSAR基础软件模块“FlexRay接口”的功能、API和配置。   在AUTOSAR分层软件架构中,FlexRay接口属于ECU抽象层,或者更准确地说,属于通信硬件抽象。这表明了FlexRay接口的主要任务:   为上层提供FlexRay通信系统的抽象接口。至少就数据传…...

【Linux-多线程】线程互斥(锁和它的接口等)

一、线程互斥 我们把多个线程能够看到的资源叫做共享资源&#xff0c;我们对共享资源进行保护&#xff0c;就是互斥 1.多线程访问问题 【示例】见一见多线程访问问题&#xff0c;下面是一个抢票的代码&#xff0c;共计票数10000张&#xff0c;4个线程去抢 之前我们展示过封…...

当一个服务拆成两个服务的错误

1.老路由信息没有修改&#xff0c;导致一直404...

单元测试入门和mockup

Java 新手入门&#xff1a;Java单元测试利器&#xff0c;Mock详解_java mock-CSDN博客 这个是典型的before when assert三段式&#xff0c;学一下单测思路 这个没有动态代理&#xff0c;所以是直接class(对比下面) Jmockit使用笔记_增加代码覆盖率_覆盖try catch_使用new Mock…...