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

《从入门到精通:蓝桥杯编程大赛知识点全攻略》(十八)-农夫约翰的奶酪块、蛋糕游戏、奶牛体检

前言

在算法竞赛和编程挑战中,博弈类问题往往要求我们充分理解参与者的行为模式和最优策略,从而提出合理的解法。在这篇博客中,我们将探讨三个有趣且富有挑战性的算法题:农夫约翰的奶酪块、蛋糕游戏和奶牛体检。这些问题涉及不同类型的博弈策略、优化问题以及动态规划技术。我们将逐一分析这些问题的背景、算法思路及解决方案,并提供详细的实现过程。


农夫约翰的奶酪块

农夫约翰有一块立方体形状的奶酪,它位于三维坐标空间中,从 (0,0,0)
延伸至 (N,N,N)。
农夫约翰将对他的奶酪块执行一系列 Q 次更新操作。
对于每次更新操作,农夫约翰将从整数坐标 (x,y,z) 到 (x+1,y+1,z+1) 处切割出一个 1×1×1 的奶酪块,其中 0≤x,y,z<N。
输入保证在农夫约翰切割的位置上存在一个 1×1×1 的奶酪块。
由于农夫约翰正在玩牛的世界,当下方的奶酪被切割后,重力不会导致上方的奶酪掉落。
在每次更新后,输出农夫约翰可以将一个 1×1×N 的砖块插入奶酪块中的方案数,使得砖块的任何部分都不与剩余的奶酪重叠。
砖块的每个顶点在全部三个坐标轴上均必须具有整数坐标,范围为 [0,N]。
农夫约翰可以随意旋转砖块。
输入格式
输入的第一行包含 N 和 Q。
以下 Q 行包含 x,y 和 z,为要切割的位置的坐标。
输出格式
在每次更新操作后,输出一个整数,为所求的方案数。
数据范围
2≤N≤1000,
1≤Q≤2×105,
0≤x,y,z<N
输入样例:

2 5
0 0 0
1 1 1
0 1 0
1 0 0
1 1 0

输出样例:

0
0
1
2
5

样例解释
在前三次更新操作后,[0,1]×[0,2]×[0,1] 范围的 1×2×1 砖块与剩余的奶酪不重叠,因此它贡献了答案。
在这里插入图片描述

算法思路

在这里插入图片描述

a[x][y] 记录的是在 x, y 平面上沿 z 轴的奶酪数量。
b[y][z] 记录的是在 y, z 平面上沿 x 轴的奶酪数量。
c[x][z] 记录的是在 x, z 平面上沿 y 轴的奶酪数量。
每次执行切割操作时,我们会更新这些数组的值,并检查是否能放置一个砖块。具体做法是:

  • 每次切割后,我们更新这三个二维数组的值。
  • 对于每一个更新操作,判断在 x, y, z 平面上的空位数量是否达到了砖块的大小 N,如果有空位,则可以插入砖块

根据当前的状态计算出能够插入砖块的数量。

  • 如果 a[x][y] == n,表示在 x, y 平面上沿 z 轴有足够的空位来插入砖块。
  • 如果 b[y][z] == n,表示在 y, z 平面上沿 x 轴有足够的空位来插入砖块。
  • 如果 c[x][z] == n,表示在 x, z 平面上沿 y 轴有足够的空位来插入砖块。

代码如下

import java.io.*;public class 农夫约翰的奶酪块 {static PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));static StreamTokenizer st = new StreamTokenizer(br);static int N = 1010;  // 最大的 N 值static int[][] a = new int[N][N], b = new int[N][N], c = new int[N][N];  // 记录平面上的奶酪数量public static void main(String[] args) throws Exception {int n = nextInt();  // 奶酪块的维度int m = nextInt();  // 操作次数int res = 0;  // 砖块插入的方案数// 处理每次的操作while (m-- > 0) {int x = nextInt(), y = nextInt(), z = nextInt();  // 切割的位置// 更新平面 a, b, cif (++a[x][y] == n) {res++;  // 如果在平面 a 上,沿 z 轴可以插入砖块,方案数加 1}if (++b[y][z] == n) {res++;  // 如果在平面 b 上,沿 x 轴可以插入砖块,方案数加 1}if (++c[x][z] == n) {res++;  // 如果在平面 c 上,沿 y 轴可以插入砖块,方案数加 1}// 输出当前的砖块插入方案数pw.println(res);}// 刷新输出pw.flush();}// 读取输入的整数public static int nextInt() throws Exception {st.nextToken();return (int) st.nval;}
}

蛋糕游戏

贝茜和埃尔茜发现了一行 N 个蛋糕(N 为偶数),大小依次为 a1,a2,…,aN。
两头奶牛都想吃到尽可能多的蛋糕。
但是,作为非常文明的奶牛,她们决定玩一个游戏来分割蛋糕!
游戏在两头奶牛之间轮流进行回合。
每个回合进行以下两者之一:

  • 贝茜选择两个相邻的蛋糕并将它们堆叠起来,制造大小为两者大小之和的一个新蛋糕。
  • 埃尔茜选择最左边或最右边的蛋糕藏起来。

当只剩下一个蛋糕时,贝茜吃掉它,而埃尔茜吃掉她藏起来的所有蛋糕。
如果两头奶牛都采取最优策略以最大化她们吃到的蛋糕量,并且贝茜先进行回合,那么每头奶牛将会吃到多少蛋糕?
输入格式
每个测试点包含 T 个独立的测试用例。
每个测试用例的格式如下。
第一行包含 N。
下一行包含 N 个空格分隔的整数 a1,a2,…,aN。
输出格式
对于每个测试用例,输出一行,包含 b 和 e,表示贝茜和埃尔茜在两头奶牛都采取最优策略的情况下分别吃到的蛋糕量。
数据范围
1≤T≤10,
2≤N≤5×105,
1≤ai≤109,
输入保证一个测试点中的所有 N 之和不超过 106。
输入样例:

2
4
40 30 20 10
4
10 20 30 40

输出样例:

60 40
60 40

样例解释
对于第一个测试用例,在最优策略下,

  1. 贝茜将堆叠中间两个蛋糕。现在蛋糕的大小为 [40,50,10]。
  2. 埃尔茜将吃掉最左边的蛋糕。现在剩余的蛋糕的大小为 [50,10]。
  3. 贝茜堆叠剩余的两个蛋糕。

贝茜将吃到 30+20+10=60 的蛋糕,而埃尔茜将吃到 40 的蛋糕。

第二个测试用例是第一个测试用例反转的情况,因此答案相同。

算法思路

在这里插入图片描述

贝茜的目标是尽可能多地合并蛋糕,使得最后剩下的蛋糕尽可能大。
埃尔茜的目标是尽可能多地藏起蛋糕,减少贝茜最后吃到的蛋糕量。
由于贝茜先手,她可以通过合并蛋糕来影响埃尔茜的选择。
使用前缀和数组 s 来快速计算任意区间的蛋糕总和。
对于每个测试用例,计算所有可能的区间和,找到最小的区间和 a,这个 a 就是贝茜最后吃到的蛋糕量。
埃尔茜吃到的蛋糕量就是总蛋糕量减去贝茜吃到的蛋糕量。
前缀和数组 s: 用于快速计算任意区间的蛋糕总和。s[i] 表示从第1个蛋糕到第i个蛋糕的总和。
区间长度 l: 由于贝茜和埃尔茜轮流操作,最终贝茜吃到的蛋糕量取决于某个区间的和。l 是区间长度的一半加1。
最小区间和 a: 通过遍历所有可能的区间,找到最小的区间和 a,这个 a 就是贝茜最后吃到的蛋糕量。
贝茜吃到的蛋糕量是 a,埃尔茜吃到的蛋糕量是总蛋糕量 s[n] 减去 a。

代码如下

import java.io.*;public class 蛋糕游戏 {static PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));static StreamTokenizer st = new StreamTokenizer(br);static int N = 500010;static int n;static long[] s = new long[N];public static void main(String[] args)throws Exception {int t = nextInt();  // 读取测试用例数量while (t-- > 0) {  // 每个测试用例处理一次n = nextInt();  // 读取蛋糕数量int l = n / 2 + 1;  // 计算贝茜操作时的长度限制long a =(long) 1e15;  // 初始化最小值为一个非常大的数for (int i = 1; i <= n; i++) {int x = nextInt();  // 读取每个蛋糕的大小s[i] = x + s[i - 1];  // 更新前缀和if(i >= l){  // 计算当前长度为 l 的区间和a = Math.min(a, s[i] - s[i - l]);  // 更新最小区间和}}pw.println(a+" "+(s[n] - a));  // 输出贝茜和埃尔茜各自的蛋糕数量}pw.flush();  // 刷新输出流}// 快速读取整数public static int nextInt()throws Exception{st.nextToken();  // 读取下一个tokenreturn (int) st.nval;  // 返回整数值}
}

奶牛体检

农夫约翰的 N 头奶牛站成一行,奶牛 1 在队伍的最前面,奶牛 N 在队伍的最后面。
农夫约翰的奶牛也有许多不同的品种。
他用从 1 到 N 的整数来表示每一品种。
队伍从前到后第 i 头奶牛的品种是 ai。
农夫约翰正在带他的奶牛们去当地的奶牛医院进行体检。
然而,奶牛兽医非常挑剔,仅愿意当队伍中第 i 头奶牛为品种 bi 时对其进行体检。
农夫约翰很懒惰,不想完全重新排列他的奶牛。
他将执行以下操作恰好一次。选择两个整数 l 和 r,使得 1≤l≤r≤N。反转队伍中第 l 头奶牛到第 r 头奶牛之间的奶牛的顺序。
农夫约翰想要衡量这种方法有多少效果。
对于每一个 c=0…N,请帮助农夫约翰求出使得恰好 c 头奶牛被检查的不同操作 (l,r) 的数量。
两种操作 (l1,r1) 和 (l2,r2) 不同,如果 l1≠l2 或者 r1≠r2。
输入格式
输入的第一行包含 N。
第二行包含 a1,a2,…,aN。
第三行包含 b1,b2,…,bN。
输出格式
输出 N+1 行,第 i 行包含使得 i−1 头奶牛被检查的不同操作 (l,r) 的数量。
数据范围
1≤N≤7500,
1≤ai,bi≤N
输入样例1:

3
1 3 2
3 2 1

输出样例1:

3
3
0
0

样例1解释
如果农夫约翰选择 (l=1,r=1),(l=2,r=2) 或 (l=3,r=3),则没有奶牛将会被检查。
注意这些操作并没有改变奶牛的位置。
以下操作会导致一头奶牛被检查。

  • (l=1,r=2):农夫约翰反转第一头和第二头奶牛的顺序,因此新队伍中每头奶牛的品种将为 [3,1,2]。第一头奶牛将会被检查。
  • (l=2,r=3):农夫约翰反转第二头和第三头奶牛的顺序,因此新队伍中每头奶牛的品种将为 [1,2,3]。第二头奶牛将会被检查。
  • (l=1,r=3):农夫约翰反转第一头,第二头和第三头奶牛的顺序,因此新队伍中每头奶牛的品种将为 [2,3,1]。第三头奶牛将会被检查。

输入样例2:

3
1 2 3
1 2 3

输出样例2:

0
3
0
3

样例2解释
三种导致 3 头奶牛被检查的可能操作为 (l=1,r=1),(l=2,r=2) 和 (l=3,r=3)。
输入样例3:

7
1 3 2 2 1 3 2
3 2 2 1 2 3 1

输出样例3:

0
6
14
6
2
0
0
0

样例3解释
两种导致 4 头奶牛被检查的可能操作为 (l=4,r=5) 和 (l=5,r=7)。

算法思路

初始匹配:

  • 在不进行任何操作时,统计初始状态下满足 ai == bi 的奶牛数量 cnt。

反转区间的影响:

  • 反转区间 [l, r] 会影响区间内的奶牛匹配情况。

  • 对于区间内的奶牛,反转后原本匹配的可能会不匹配,原本不匹配的可能会匹配。

枚举所有可能的区间:

  • 遍历所有可能的区间 [l, r],计算反转后满足 ai == bi 的奶牛数量。

  • 使用滑动窗口的思想,从每个位置 i 开始,向左右扩展区间。

初始化:

  • 计算初始状态下满足 ai == bi 的奶牛数量 cnt。

枚举区间:

  • 对于每个可能的中心点 i,枚举区间长度为 1 和 2 的情况(即奇数长度和偶数长度)。

  • 对于每个区间 [l, r],计算反转后满足 ai == bi 的奶牛数量 sum:

  • 减去区间内原本匹配的奶牛数量。

  • 加上反转后新匹配的奶牛数量。

统计结果:

  • 使用数组 ans 记录每个 c 对应的操作数量。

  • 对于每个区间 [l, r],更新 ans[sum]。

输出结果:

  • 遍历 ans 数组,输出每个 c 对应的操作数量。

代码如下

import java.io.*;public class Main {static PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));static StreamTokenizer st = new StreamTokenizer(br);static int N = 7510;static int n;static int[] arr = new int[N], b = new int[N], ans = new int[N];public static void main(String[] args) throws Exception {n = nextInt();for (int i = 1; i <= n; i++) {arr[i] = nextInt(); // 读取奶牛品种序列}for (int i = 1; i <= n; i++) {b[i] = nextInt(); // 读取兽医要求序列}// 计算初始匹配数量int cnt = 0;for (int i = 1; i <= n; i++) {if (arr[i] == b[i]) {cnt++;}}// 枚举所有可能的区间 [l, r]for (int i = 1; i <= n; i++) {for (int j = 0; j < 2; j++) { // j=0 表示奇数长度,j=1 表示偶数长度int sum = cnt; // 初始匹配数量for (int l = i, r = i + j; l >= 1 && r <= n; l--, r++) {// 减去原本匹配的if (arr[l] == b[l]) {sum--;}if (arr[r] == b[r]) {sum--;}// 加上反转后新匹配的if (arr[l] == b[r]) {sum++;}if (arr[r] == b[l]) {sum++;}ans[sum]++; // 更新结果}}}// 输出结果for (int i = 0; i <= n; i++) {pw.println(ans[i]);}pw.flush();}public static int nextInt() throws Exception {st.nextToken();return (int) st.nval;}
}

总结

在编程竞赛中,理解博弈论和优化问题的解法是非常重要的。无论是通过动态规划、贪心算法,还是通过高效的数据结构来优化时间复杂度,这些技术都将帮助我们更好地解决实际问题。

相关文章:

《从入门到精通:蓝桥杯编程大赛知识点全攻略》(十八)-农夫约翰的奶酪块、蛋糕游戏、奶牛体检

前言 在算法竞赛和编程挑战中&#xff0c;博弈类问题往往要求我们充分理解参与者的行为模式和最优策略&#xff0c;从而提出合理的解法。在这篇博客中&#xff0c;我们将探讨三个有趣且富有挑战性的算法题&#xff1a;农夫约翰的奶酪块、蛋糕游戏和奶牛体检。这些问题涉及不同…...

蓝桥杯 之 图形规律

文章目录 分析组成&#xff0c;找到规律数正方形 在蓝桥杯中&#xff0c;常常会有一些图形的规律的题目需要我们去解决&#xff0c;所以我们需要学会其中的一些方法&#xff0c;我们这样才能解决对应的问题 方法1&#xff1a;直接对n进行拆分方法2&#xff1a;使用递归的思路&a…...

Django 项目模块化开发指南:实现 Vue 风格的组件化

在 Django 项目中,我们经常需要 复用 HTML 代码,避免重复编写相同的模板。例如,博客系统中,博客列表页 和 文章详情页 可能都有相同的 导航栏、模态框、页脚 等。如何像 Vue 一样进行 模块化开发,让代码更加清晰、可维护呢? 本文将详细介绍 Django 的模板继承 和 {% incl…...

在kali linux中kafka的配置和使用

官方文档 一、安装依赖 删除原有的jdk sudo apt remove --purge openjdk-\* sudo apt clean安装 Java (JDK 11) sudo apt install openjdk-11-jdk -y # 验证安装 java -version二、下载并解压 Kafka 下载 Kafka wget https://dlcdn.apache.org/kafka/3.9.0/kafka_2.13-3.9.0.t…...

Spring Bean 作用域设置为prototype在并发场景下是否是线程安全的

在并发场景下&#xff0c;将 Spring Bean 作用域设置为 prototype 通常能在一定程度上保证线程安全&#xff0c;但这并不意味着绝对的线程安全 1. prototype 作用域的特点 在 Spring 中&#xff0c;Bean 的作用域定义了 Bean 的生命周期和可见性。prototype 作用域表示每次从…...

Linux系统编程(三)--Linux环境基础开发工具

文章目录 前言1.软件包的管理1.1 Linux下安装软件的方式1.2 什么是软件包&#xff08;yum&#xff09;1.3 yum具体操作 2. 编辑器vim2.1 vim的基本概念2.2 vim下各模式的切换vim命令模式各命令汇总 2.4批量化注释和批量化去注释2.5 vim配置2.6 普通用户使用sudo提权 3. 编译器g…...

Apache Shiro 反序列化漏洞全解析(Shiro-550 Shiro-721)

一、前言 Apache Shiro 是一个强大的 Java 安全框架&#xff0c;广泛用于用户认证、授权、加密和会话管理。然而&#xff0c;由于 Shiro 在某些版本中存在反序列化漏洞&#xff0c;攻击者可以通过特定手法实现远程代码执行&#xff08;RCE&#xff09;&#xff0c;进而获取服务…...

playbin之Source插件加载流程源码剖析

之前我们有讲解过uridecodebin的setup_source中会创建source插件&#xff0c;关键函数&#xff1a; /* create and configure an element that can handle the uri */ source gen_source_element (decoder); /** Generate and configure a source element.** Returns: (tra…...

调用的子组件中使用v-model绑定数据以及使用@调用方法

实例&#xff1a; 子组件my-date-picker&#xff1a; <!--* description: 日期组件二次封装* 解决 “日期为区间时&#xff0c;后端不支持传数组&#xff0c;而要传#分割的字符串” --> <template><el-date-pickerclass"comp-my-date-picker"v-mode…...

指纹细节提取(Matlab实现)

指纹细节提取概述指纹作为人体生物特征识别领域中应用最为广泛的特征之一&#xff0c;具有独特性、稳定性和便利性。指纹细节特征对于指纹识别的准确性和可靠性起着关键作用。指纹细节提取&#xff0c;即从指纹图像中精确地提取出能够表征指纹唯一性的关键特征点&#xff0c;是…...

爱普生可编程晶振 SG-8101CE 在智能家居领域展现出的优势

在智能家居的全场景应用中&#xff0c;设备间的协同效率、数据传输的稳定性以及系统运行的可靠性&#xff0c;成为衡量用户体验的核心标准。爱普生 SG-8101CE 可编程晶振以其卓越的性能&#xff0c;为智能门锁、传感器、中控系统等设备提供核心动力&#xff0c;助力厂商打造更可…...

DeepSeek掘金——DeepSeek-R1图形界面Agent指南

DeepSeek掘金——DeepSeek-R1图形界面Agent指南 本文将指导你完成设置 DeepSeek R1 和 Browser Use 的过程,以创建能够执行复杂任务的 AI 代理,包括 Web 自动化、推理和自然语言交互。 开源大型语言模型 (LLM) 的兴起使得创建可与 OpenAI 的 ChatGPT Operator 等专有解决方案…...

Linux知识-第一天

Linux的目录机构为一个树型结构 其没有盘符这个概念&#xff0c;只有一个根目录&#xff0c;所有文件均在其之下 在Linux系统中&#xff0c;路径之间的层级关系 使用 / 开头表示根目录&#xff0c;后面的表示层级关系 Linux命令入门 Linux命令基础 Linux命令通用格式 comman…...

通过多线程分别获取高分辨率和低分辨率的H264码流

目录 一.RV1126 VI采集摄像头数据并同时获取高分辨率码流和低分辨率码流流程 ​编辑 1.1初始化VI模块&#xff1a; 1.2初始化RGA模块&#xff1a; 1.3初始化高分辨率VENC编码器、 低分辨率VENC编码器&#xff1a; 1.4 VI绑定高分辨率VENC编码器&#xff0c;VI绑定RGA模块…...

【前端】在WebStorm中安装Node.js与nvm与npm的详细过程

文章目录 一、Node.js安装二、nvm安装三、验证安装成功总结 一、Node.js安装 首先到node.js官网下载安装文件。 https://nodejs.org/zh-cn 直接运行安装文件进行安装&#xff1a; 跳过继续安装&#xff1a; 完成安装&#xff1a; 完成后的安装路径&#xff1a; 环境变量的…...

飞书考勤Excel导入到自己系统

此篇主要用于记录Excel一行中&#xff0c;单条数据的日期拿取&#xff0c;并判断上下班打卡情况。代码可能满足不了大部分需求&#xff0c;目前只够本公司用&#xff0c;如果需要&#xff0c;可以参考。 需要把飞书月度汇总的考勤表导入系统中可以参考下。 下图为需要获取的年…...

Android Flow 示例

在Android开发的世界里&#xff0c;处理异步数据流一直是一个挑战。随着Kotlin的流行&#xff0c;Flow作为Kotlin协程库的一部分&#xff0c;为开发者提供了一种全新的方式来处理这些问题。今天&#xff0c;我将深入探讨Flow的设计理念&#xff0c;并通过具体的例子展示如何在实…...

vue videojs使用canvas截取视频画面

前言 刚开始做的时候太多坑&#xff0c;导致一直报错&#xff1a; Uncaught (in promise) TypeError: Failed to execute ‘drawImage’ on ‘CanvasRenderingContext2D’: The provided value is not of type ‘(CSSImageValue or HTMLCanvasElement or HTMLImageElement or H…...

Android 获取jks的SHA1值:java.io.IOException: Invalid keystore format

命令生成 keytool -list -v -keystore 全路径.jks -alias 别名 -storepass 密码 -keypass 密码 1、遇到 的问题&#xff1a; 通过快捷键 ‘win r’ 启动的小黑框运行上面的命令会出现下面这个错误keytool 错误: java.io.IOException: Invalid keystore format 2、解决问题 …...

CMake学习-生成库文件来链接生成可执行文件

生成库文件的目的就是为了复用代码与功能有一个Complex类&#xff0c;正常会与main.cpp一起经过.o的编译过程后&#xff0c;生成可执行文件demo但如果想要复用Complex类&#xff0c;就需要将其编译为一个库&#xff0c;main.cpp在运行时链接这个库 生成库文件&#xff1a; gcc …...

Vue 3 中 unref 的作用与 Vue Router currentRoute 的知识

目录 前言1. unref2. Demo 前言 从实战中学习&#xff0c;了解一点点知识点 unref 主要用于解包 ref&#xff0c;特别是在 Vue Router 4 里&#xff0c;currentRoute 是一个响应式 ref&#xff0c;需要 .value 或 unref 来访问具体字段 1. unref unref 是 Vue 3 提供的工具函…...

YOLOv12:目标检测新时代的破局者

目录 一、YOLOv12 横空出世二、YOLOv12 的性能飞跃2.1 多规模优势2.2 对比超越 三、技术创新与原理剖析3.1 区域注意力模块&#xff08;Area Attention&#xff0c;A2&#xff09;3.2 残差高效层聚合网络&#xff08;R-ELAN&#xff09;3.3 架构优化细节 四、实验验证与结果分析…...

网络安全法与等级保护 PPT 精华汇总

资源描述 本资源文件为《网络安全法与等级保护》的PPT精华汇总&#xff0c;内容涵盖了网络安全法与等级保护的总体框架及相关标准规范。该PPT详细介绍了网络安全法与等级保护的各个章节和条款&#xff0c;并提供了基础类和应用类的相关标准文件&#xff0c;帮助读者全面了解和…...

coze生成的工作流,发布后,利用cmd命令行执行。可以定时发日报,周报等。让他总结你飞书里面的表格。都可以

coze生成的工作流&#xff0c;发布后&#xff0c;利用cmd命令行执行。可以定时发日报&#xff0c;周报等。让他总结你飞书里面的表格。都可以。 很简单。 准备工作&#xff0c;先发布你的工作流&#xff0c;和发布应用。 然后&#xff0c;点击扣子API 。 申请一个&#xff0…...

K8S学习之基础六:k8s中pod亲和性

Pod节点亲和性和反亲和性 podaffinity&#xff1a;pod节点亲和性指的是pod会被调度到更趋近与哪个pod或哪类pod。 podunaffinity&#xff1a;pod节点反亲和性指的是pod会被调度到远离哪个pod或哪类pod 1. Pod节点亲和性 requiredDuringSchedulingIgnoredDuringExecution&am…...

从统计学视角看机器学习的训练与推理

从统计学视角看机器学习的训练与推理 目录 引言&#xff1a;统计学与机器学习的奇妙缘分训练与推理&#xff1a;你得先学会“看数据”再“用数据”最大似然估计&#xff08;MLE&#xff09;&#xff1a;从直觉到数学证明 3.1 伯努利分布的MLE3.2 单变量高斯分布的MLE3.3 多元…...

《论数据分片技术及其应用》审题技巧 - 系统架构设计师

论数据分片技术及其应用写作框架 一、考点概述 本论题“论数据分片技术及其应用”主要考察的是软件工程中数据分片技术的理解、应用及其实际效果分析。考点涵盖以下几个方面&#xff1a; 首先&#xff0c;考生需对数据分片的基本概念有清晰的认识&#xff0c;理解数据分片是…...

【鸿蒙Next】鸿蒙与flutter使用自定义iconfont的ttf字体库对比总结

ttf的iconfont库如何获取 1、自己创建 第一步、 iconfont-阿里巴巴矢量图标库 打开网址 第二步、搜索自己的需要的图标、并且加购到购物车 第三步、点击购物车&#xff0c;添加至项目 第四步、添加至项目或者新建项目再添加 第五步、下载至本地 就得到了ttf文件 2、设计…...

Redis实战篇《黑马点评》8 附近商铺

8.附近商户 8.1GEO数据结构的基本用法 GEO就是Geolocation的简写形式&#xff0c;代表地理坐标。Redis在3.2版本中加入了对GEO的支持&#xff0c;允许存储地理坐标信息&#xff0c;帮助我们根据经纬度来检索数据&#xff0c;常见的命令有 GEOADD&#xff1a;添加一个地理空间…...

【大厂AI实践】美团:美团智能客服核心技术与实践

【大厂AI实践】美团&#xff1a;美团智能客服核心技术与实践 &#x1f31f; 嗨&#xff0c;你好&#xff0c;我是 青松 &#xff01; &#x1f308; 自小刺头深草里&#xff0c;而今渐觉出蓬蒿。 NLP Github 项目推荐&#xff1a; 【AI 藏经阁】&#xff1a;https://gitee.com…...

标签的ref属性 vue中为什么不用id标记标签

标签的ref属性 vue中为什么不用id标记标签 假设有一对父子组件&#xff0c;如果父组件和子组件中存在id相同的标签&#xff0c;会产生冲突。通过id获取标签会获取到先加载那个标签。 标签的ref属性的用法 在父组件App中&#xff0c;引入了子组件Person。 并使用ref标记了Pe…...

期权帮|股指期货3月合约交割该如何做?

锦鲤三三每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 股指期货3月合约交割该如何做&#xff1f; 股指期货的交割日通常是合约到期月份的第三个星期五。 对于3月合约&#xff0c;若当月无特殊节假日&#xff0c;交割日就是3月的第三…...

Collab-Overcooked:专注于多智能体协作的语言模型基准测试平台

2025-02-27&#xff0c;由北京邮电大学和理想汽车公司联合创建。该平台基于《Overcooked-AI》游戏环境&#xff0c;设计了更具挑战性和实用性的交互任务&#xff0c;目的通过自然语言沟通促进多智能体协作。 一、研究背景 近年来&#xff0c;基于大型语言模型的智能体系统在复…...

[Computer Vision]实验七:图像检索

目录 一、实验内容 二、实验过程 2.1 准备数据集 2.2 SIFT特征提取 2.3 学习“视觉词典”&#xff08;vision vocabulary&#xff09; 2.4 建立图像索引并保存到数据库中 2.5 用一幅图像查询 三、实验小结 一、实验内容 实现基于颜色直方图、bag of word等方法的以图搜…...

访问控制列表(ACL)思科、华为

访问控制列表&#xff08;ACL&#xff09; 一、ACL的基本概念 随着网络的飞速发展&#xff0c;网络安全和网络服务质量QoS&#xff08;Quality of Service&#xff09;问题日益突出。 企业重要服务器资源被随意访问&#xff0c;企业机密信息容易泄露&#xff0c;造成安全隐患。…...

linux磁盘满了怎么安全删除文件

df -h 通过df -h /dir 查看被占满的目录&#xff0c;dir替换为你的文件目录 du -sh * 进入被占满的目录&#xff0c;执行 du -sh * &#xff0c;查看哪些文件占的磁盘大 查看占用磁盘最大的文件 du -sh * | sort -rh | head -n N N通常可以设置为10 有的docker容器文件太…...

2025国家护网HVV高频面试题总结来了04(题目+回答)

网络安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 一、HVV行动面试题分类 根据面试题的内容&#xff0c;我们将其分为以下几类&#xff1a; 漏洞利用与攻击技术 …...

jenkins使用插件在Build History打印基本信息

1、插件安装 分别是description setter plugin插件和user build vars插件&#xff0c;下面介绍一下这两个插件: description setter plugin&#xff1a;作用是在 Build 栏下方增加一个功能块&#xff0c;用于填写自定义信息&#xff0c;也就是 Build history 中需要显示的文字…...

线程池的工作流程

线程池的工作流程主要包括任务提交、线程分配、任务执行和线程回收等环节&#xff0c;以下是对其详细的描述&#xff1a; 任务提交 当有任务需要执行时&#xff0c;用户通过线程池提供的提交方法&#xff0c;如execute()或submit()方法&#xff0c;将任务&#xff08;通常是实现…...

《深度学习实战》第4集:Transformer 架构与自然语言处理(NLP)

《深度学习实战》第4集&#xff1a;Transformer 架构与自然语言处理&#xff08;NLP&#xff09; 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;Transformer 架构的出现彻底改变了传统的序列建模方法。它不仅成为现代 NLP 的核心&#xff0c;还推动了诸如 BERT、…...

vue下载插件

1.下载路由组件 npm i vue-router2.创建router文件夹 3.创建router.js文件 import {createRouter, createWebHistory} from "vue-router"let router createRouter({history: createWebHistory(),routes: [{path: "/",component: () > import(".…...

两周学习安排

日常安排 白天 看 MySQL实战45讲&#xff0c;每日一讲 看 图解设计模式 每天1-2道力扣算法题&#xff08;难度中等以上&#xff09; 每天复习昨天的单词&#xff0c;记20个单词&#xff0c;写一篇阅读 晚上 写服创项目 每日产出 MySQL实战45讲 读书笔记 设计模式 读书笔…...

蓝桥与力扣刷题(蓝桥 k倍区间)

题目&#xff1a;给定一个长度为 N 的数列&#xff0c;A1,A2,⋯AN​&#xff0c;如果其中一段连续的子序列 Ai,Ai1,⋯Aj( i≤j ) 之和是 K 的倍数&#xff0c;我们就称这个区间[i,j] 是 K 倍区间。 你能求出数列中总共有多少个 K 倍区间吗&#xff1f; 输入描述 第一行包含两…...

Spring项目-抽奖系统(实操项目-用户管理接口)(END)

^__^ (oo)\______ (__)\ )\/\ ||----w | || || 一&#xff1a;前言&#xff1a; 活动创建及展示博客链接&#xff1a;Spring项目-抽奖系统(实操项目-用户管理接口)(THREE)-CSDN博客 上一次完成了活动的创建和活动的展示&#xff0c;接下来就是重头戏—…...

5个GitHub热点开源项目!!

1.自托管 Moonlight 游戏串流服务&#xff1a;Sunshine 主语言&#xff1a;C&#xff0c;Star&#xff1a;14.4k&#xff0c;周增长&#xff1a;500 这是一个自托管的 Moonlight 游戏串流服务器端项目&#xff0c;支持所有 Moonlight 客户端。用户可以在自己电脑上搭建一个游戏…...

数据结构:二叉搜索树(排序树)

1.二叉搜索树的定义 二叉搜索树要么是空树&#xff0c;要么是满足以下特性的树 &#xff08;1&#xff09;左子树不为空&#xff0c;那么左子树左右节点的值都小于根节点的值 &#xff08;2&#xff09;右子树不为空&#xff0c;那么右子树左右节点的值都大于根节点的值 &#…...

JavaEE--计算机是如何工作的

一、一台计算机的组成部分 1.CPU&#xff08;中央处理器&#xff09; 2.主板&#xff08;一个大插座&#xff09; 3.内存&#xff08;存储数据的主要模板&#xff09; 4.硬盘&#xff08;存储数据的主要模板&#xff09; 内存和硬盘对比&#xff1a; 内存硬盘读写速度快慢存…...

Redis 实战篇 ——《黑马点评》(下)

《引言》 &#xff08;下&#xff09;篇将记录 Redis 实战篇 最后的一些学习内容&#xff0c;希望大家能够点赞、收藏支持一下 Thanks♪ (&#xff65;ω&#xff65;)&#xff89;&#xff0c;谢谢大家。 传送门&#xff08;上&#xff09;&#xff1a;Redis 实战篇 ——《黑马…...

OpenCV计算摄影学(10)将一组不同曝光的图像合并成一张高动态范围(HDR)图像的实现类cv::MergeDebevec

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 resulting HDR 图像被计算为考虑了曝光值和相机响应的各次曝光的加权平均值。 cv::MergeDebevec 是 OpenCV 中用于将一组不同曝光的图像合并成一…...

Linux驱动开发之串口驱动移植

原理图 从上图可以看到RS232的串口接的是UART3&#xff0c;接下来我们需要使能UART3的收发功能。一般串口的驱动程序在内核中都有包含&#xff0c;我们配置使能适配即可。 设备树 复用功能配置 查看6ull如何进行uart3的串口复用配置&#xff1a; 设备树下添加uart3的串口复用…...