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

信息学奥赛一本通 1509:【例 1】Intervals | OpenJudge 百练 1201:Intervals

【题目链接】

ybt 1509:【例 1】Intervals
OpenJudge 百练 1201:Intervals

【题目考点】

1. 贪心算法 树状数组 并查集
2. 差分约束算法

【解题思路】

解法1:贪心算法+树状数组、并查集优化

该题属于区间选点问题,ybt 1324:【例6.6】整数区间 是给定一些区间,选择一些点使得每个区间范围内至少有1个点。
本题为:给定一些区间,选择一些点使得每个区间范围内至少有给定数量的点。

贪心选择:对每个区间,如果还需要选点,则尽量从区间右侧选点。
所有区间按照右端点 b b b从小到大排序,排序后第i区间范围为 [ a i , b i ] [a_i, b_i] [ai,bi],其中需要至少选择 c i c_i ci个点。
贪心选择的具体解释:

  • 如果该区间中已经选择点的数量大于等于 c i c_i ci,则不需要再选点。
  • 如果该区间中已经选择点的数量小于 c i c_i ci,则从 b i b_i bi a i a_i ai从大到小遍历每个点,遇到未选择的点就选择该点,直到选够 c i c_i ci个点。

贪心选择性质的证明:

  1. 证明存在最优解包含第一次的贪心选择
    第一次的贪心选择为:在 [ a 1 , b 1 ] [a_1,b_1] [a1,b1]中选择区间 [ b 1 − c 1 + 1 , b 1 ] [b_1-c_1+1, b_1] [b1c1+1,b1]中的整数点,共 c 1 c_1 c1个点。
    反证法:假设所有最优解都不包含第一次的贪心选择
    也就是说在 [ a 1 , b 1 − c 1 ] [a_1, b_1-c_1] [a1,b1c1]选择了一些点,而 [ b 1 − c 1 + 1 , b 1 ] [b_1-c_1+1, b_1] [b1c1+1,b1]中存在未被选择的点。设在 [ a 1 , b 1 − c 1 ] [a_1, b_1-c_1] [a1,b1c1]中选择了点 G G G,而 [ b 1 − c 1 + 1 , b 1 ] [b_1-c_1+1, b_1] [b1c1+1,b1]中点 F F F未被选择。
    现在不选择点 G G G转而选择点 F F F,第2、第3等后面的区间中已选择的点可能会增加,也可能不变。每个区间的选点数量都满足要求,总选点数量不变。因此这样变换选择点后,此时的选点方案仍然是最优解。
    将在 [ a 1 , b 1 − c 1 ] [a_1, b_1-c_1] [a1,b1c1]中选择的所有点都去掉,转而在 [ b 1 − c 1 + 1 , b 1 ] [b_1-c_1+1, b_1] [b1c1+1,b1]中选择相同数量的点,最后选择的点就是 [ b 1 − c 1 + 1 , b 1 ] [b_1-c_1+1, b_1] [b1c1+1,b1]中的每个点,这也就是进行了贪心选择,这个包含了第一次贪心选择的解仍然是最优解。这与假设相悖,原命题得证。
  2. 假设最优解包含前k次的贪心选择,证明存在最优解包含第k+1次的贪心选择:
    证明过程与第1点的证明过程相似,不再赘述。

具体实现:
设vis数组,vis[i]表示第i点是否已被选择。
对于每个区间,先遍历整个区间,统计出已选点数量,也就是求出待选择点的数量。

  • 如果待选择点的数量为0,就看下一个区间。
  • 否则,从区间右端点开始,向前遍历,遇到未选择的点,就选择一个点,直到待选择点的数量为0。统计选点总数量,就是问题结果。

该算法的复杂度达到了 O ( n 2 ) O(n^2) O(n2),尽管可以通过ybt 1509与OpenJudge 百练 1201的测试点,但在LOJ10087. 「一本通 3.4 例 1」Intervals,以及MYOJ 6989: 「一本通 3.4 例 1」Intervals会超时。
可以继续在该算法基础上使用树状数组以及并查集进行优化。
首先统计区间i,也就是 [ a i , b i ] [a_i,b_i] [ai,bi]范围内已选点数量,为区间查询,选择一个点为区间修改,这一步可以使用树状数组优化,将区间查询的复杂度从 O ( n ) O(n) O(n)降至 O ( l o g n ) O(logn) O(logn)
从右向左遍历第i区间,寻找未选择点的过程,可以使用并查集加速。
并查集中第i点所在集合的根结点find(i)为小于等于i的第一个未选择的点。
如果选择了第j点,那么小于等于j的第一个未选择点,就是小于等于i的第一个未选择点,因此将fa[j]设为find(j-1)。遍历是,j变化为find(j)。这样可以加快遍历速度。

注:这里必须使用并查集,而不能仅使用一个数组fa表示小于等于一个点的第一个未选择点。
如果只使用fa数组,选择j点时更新方法为fa[j] = fa[j-1]
假设存在i,i+1,i+2,i+3几个点,其中vis[i+1],vis[i+3]为真,其余为假,那么
fa[i+1]的值为i,fa[i+3]的值为i+2。
如果此时选择i+2点,将vis[i+2]设为真,fa[i+2] = fa[i+1],值为i。
此时fa[i+3]没有变,仍然为i+2,而小于等于i+3的第一个未选择点此时为i,不是i+2。
如果使用并查集,fa[i+2] = find(i+1),值为i。fa[i+3]为i+2,find(i+3)为i,是正确的。

优化后就可以通过以上提到的各个OJ中的问题。

解法2:差分约束

将输入的数值都增加1,最终统计区间 [ 1 , 50001 ] [1,50001] [1,50001]中选择整数的数量。
d i d_i di表示区间 [ 1 , i ] [1,i] [1,i]中选出数字的数量,类似前缀和, d b − d a − 1 d_b-d_{a-1} dbda1为区间 [ a , b ] [a,b] [a,b]中选出数字的数量。
输入要求 [ a , b ] [a,b] [a,b]中至少选择 c c c个点,也就是区间 [ a , b ] [a,b] [a,b]中点的数量要求大于等于 c c c,即 d b − d a − 1 ≥ c d_{b}-d_{a-1}\ge c dbda1c
对于区间 [ i , i ] [i,i] [i,i],区间中点的数量为 d i − d i − 1 d_i-d_{i-1} didi1

  • 该区间中最多有1个点,因此满足 d i − d i − 1 ≤ 1 d_i-d_{i-1}\le 1 didi11,改写为 d i − 1 − d i ≥ − 1 d_{i-1}-d_i \ge -1 di1di1
  • 该区间中最少有0个点,即 d i − d i − 1 ≥ 0 d_i-d_{i-1} \ge 0 didi10

以上不等式方程组构成差分约束条件。
根据差分约束建图的方法为:对于不等式 x b − x a ≥ c x_b-x_a\ge c xbxac,图中顶点a到顶点b有一条权值为c的有向边,那么
d b − d a − 1 ≥ c d_{b}-d_{a-1}\ge c dbda1c:顶点a-1到顶点b有权值为c的有向边。
d i − 1 − d i ≥ − 1 d_{i-1}-d_i \ge -1 di1di1:顶点i到顶点i-1有权值为-1的有向边。
d i − d i − 1 ≥ 0 d_i-d_{i-1} \ge 0 didi10:顶点i-1到顶点i有权值为0的有向边。

将第0顶点设为超级源点,到每个其他顶点都有一条权值为0的有向边。
相当于存在不等式 d i − d 0 ≥ 0 d_i-d_0\ge 0 did00,而 d 0 = 0 d_0=0 d0=0
使用SPFA算法求以顶点0为源点的单源最长路径,求出到顶点i的最长路径长度 d i d_i di。该 d i d_i di就是满足 d i ≥ 0 d_i\ge 0 di0的最小值。
d 50001 = d 50001 − d 0 d_{50001}=d_{50001}-d_0 d50001=d50001d0,就是区间 [ 1 , 50001 ] [1,50001] [1,50001]中的最小选点数量。

下面论证该图中一定不存在正权环:

存在顶点a-1和顶点b满足 a − 1 < b a-1<b a1<b,如果顶点b到顶点a-1有路径,必然由【顶点i到顶点i-1的权值为-1的有向边】构成,边数为 b − a + 1 b-a+1 ba+1,路径权值 s 1 = − ( b − a + 1 ) s1=-(b-a+1) s1=(ba+1)
【顶点a-1到顶点b有权值为c的有向边】, [ a , b ] [a,b] [a,b]中最多可以选出b-a+1个数,从a-1到b的路径上可能有多条正权边,但正权边的权值加和,即路径的权值 s 2 ≤ b − a + 1 s2\le b-a+1 s2ba+1
将两条路径合起来形成环,该环的权值 s 1 + s 2 ≤ 0 s1+s2\le 0 s1+s20,因此不存在正权环。

【题解代码】

解法1:贪心算法+树状数组、并查集优化

#include<bits/stdc++.h>
using namespace std;
#define N 50005
struct Node
{int a, b, c;//[a, b]中选c个数bool operator < (const Node &x) const{return b < x.b;} 
} a[N];
bool vis[N];//vis[i]:点i是否已被选择 
int fa[N], tree[N]; 
void init(int n)
{for(int i = 1; i <= n; ++i)fa[i] = i;
} 
int find(int x)//find(x):<=x的所有点中第一个vis为false的点 
{return x == fa[x] ? x : fa[x] = find(fa[x]);
}
int lowbit(int x)
{return x & -x;
}
void update(int x, int v)//vis[x] = v
{for(int i = x+1; i < N; i += lowbit(i))//x可能为0,树状数组下标从1开始 tree[i] += v;
}
int sum(int x)//vis[0]+...+vis[x]
{int res = 0;for(int i = x+1; i > 0; i -= lowbit(i))res += tree[i];return res; 
}
int query(int l, int r)//vis[l]+...+vis[r]
{return sum(r)-sum(l-1);
}
int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);init(50000);int n, ans = 0;//ans:总选点数量 cin >> n;for(int i = 1; i <= n; ++i)cin >> a[i].a >> a[i].b >> a[i].c; sort(a+1, a+1+n);for(int i = 1; i <= n; ++i){a[i].c -= query(a[i].a, a[i].b);if(a[i].c <= 0)//如果已经不需要再选点 continue;for(int j = find(a[i].b); j >= a[i].a; j = find(j)){vis[j] = true;update(j, 1);ans++;fa[j] = find(j-1);//find(j-1)是<=j-1的第一个vis为false的点的下标,fa[j]设为find(j-1)后,以后find(j)就是find(j-1) if(--a[i].c <= 0)break;}}cout << ans;return 0;
}

解法2:差分约束

#include <bits/stdc++.h>
using namespace std;
#define N 50005
struct Edge
{int v, w;
};
int n, d[N];//d[i]:1~i中选出数字的数量 d[b]-d[a-1]为a~b中选出数字的数量 
bool inQue[N];
vector<Edge> edge[N];
void spfa(int sv)
{queue<int> que;memset(d, 0xc0, sizeof(d));d[sv] = 0;inQue[sv] = true;que.push(sv);while(!que.empty()){int u = que.front();que.pop();inQue[u] = false;for(Edge e : edge[u]){int v = e.v, w = e.w;if(d[v] < d[u]+w){d[v] = d[u]+w;if(!inQue[v]){inQue[v] = true;que.push(v);}}}}
}
int main()
{int a, b, c;cin >> n;for(int i = 1; i <= n; ++i){cin >> a >> b >> c;//a~b中选出数字的数量大于等于c  d[b]-d[a-1] >= ca++, b++;//输入的数字增加1,使得数字范围为1~50001 edge[a-1].push_back(Edge{b, c});//d[b]-d[a-1] >= c}for(int i = 1; i <= 50001; ++i){//i~i中有最少0个数字,最多1个数字,即 0 <= d[i]-d[i-1] <= 1edge[i].push_back(Edge{i-1, -1});//d[i-1]-d[i] >= -1edge[i-1].push_back(Edge{i, 0});//d[i]-d[i-1] >= 0edge[0].push_back(Edge{i, 0});//d[i]-d[0] >= 0 顶点0为超级源点 }spfa(0);cout << d[50001];return 0;
}

相关文章:

信息学奥赛一本通 1509:【例 1】Intervals | OpenJudge 百练 1201:Intervals

【题目链接】 ybt 1509&#xff1a;【例 1】Intervals OpenJudge 百练 1201:Intervals 【题目考点】 1. 贪心算法 树状数组 并查集 2. 差分约束算法 【解题思路】 解法1&#xff1a;贪心算法树状数组、并查集优化 该题属于区间选点问题&#xff0c;ybt 1324&#xff1a;…...

电子电子架构 --- 主机厂视角下ECU开发流程

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…...

⭐Unity_Demolition Media Hap (播放Hap格式视频 超16K大分辨率视频 流畅播放以及帧同步解决方案)

播放大分辨率视频以及实现局域网视频同步是许多开发者会遇到的需求&#xff0c;AVPro有一个 Ultra Edition版本,也能播放Hap格式视频,之外就是Demolition Media Hap插件啦&#xff0c;实测即使是 7208*3808 大分辨率的视频帧率还是能稳定在30帧&#xff0c;它能帮助我们轻松解决…...

【MySQL】MySQL索引与事务

目录 前言 1. 索引 &#xff08;index&#xff09; 1.1 概念 1.2 作用 1.3 使用场景 1.4 索引的相关操作 查看索引 创建索引 删除索引 2. 索引背后的数据结构 2.1 B树 2.2 B&#xff0b;树的特点 2.3 B&#xff0b;树的优势 3. 事务 3.1 为什么使用事务 3.2 事…...

Apache Spark 源码解析

Apache Spark 是一个开源的分布式计算系统&#xff0c;提供了高效的大规模数据处理能力。下面我将对 Spark 的核心源码结构进行解析。 核心架构 Spark 的主要代码模块包括&#xff1a; Core (核心模块) 包含 Spark 的基本功能&#xff0c;如任务调度、内存管理、错误恢复等 …...

MySQL的日志--Undo Log【学习笔记】

MySQL的日志--Undo Log 知识来源&#xff1a; 《MySQL是怎样运行的》--- 小孩子4919 为了保证事务的原子性&#xff0c;当事务中途遇到各种错误需要将数据回滚&#xff08;rollback&#xff09;到原来的样子。为此MySQL提出撤销日志&#xff08;Undo Log&#xff0c;也称undo日…...

一洽 全力辅助商户平台在线咨询解决方案

在商业数字化转型加速的背景下&#xff0c;客户对高效服务的需求日益增强。商户平台需要通过优化在线咨询服务&#xff0c;提升客户沟通效率与服务质量。一套综合性的在线咨询解决方案&#xff0c;通过整合多维度功能与智能技术&#xff0c;能够有效满足商户与客户的双向需求&a…...

ctfshow-web-新春欢乐杯

这几天做了这个新春欢乐杯&#xff0c;对于我这个小萌新来说有难度&#xff0c;同时也是收获满满&#xff0c;以下是我解题流程和收获 热身 <?php/* # -*- coding: utf-8 -*- # Author: h1xa # Date: 2022-01-16 15:42:02 # Last Modified by: h1xa # Last Modified …...

信奥赛之c++基础(初识循环嵌套与ASCII密码本)

🎠 游乐园编程奇遇记——循环嵌套与ASCII密码本 🎡 第一章:摩天轮与旋转木马——循环嵌套 🎪 游乐场里的双重循环 for(int 排数=1; 排数<=3; 排数++){// 外层循环像摩天轮for(int 座位=1; 座位<=5; 座位++){// 内层循环像旋转木马cout << "🎪"…...

同一电脑下使用 python2 和 python3

我本地先安装的2&#xff0c;然后再安装3。在电脑的环境变量 - Path 内&#xff0c;发现3的路径没有被加上&#xff0c;所以在cmd内输入python调用的是python2目录下的python.exe文件。pip.exe则是在Python/Scripts目录下&#xff0c;也就是默认调用的pip也是2的。 解决方案&…...

第十二届蓝桥杯 2021 C/C++组 直线

目录 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; 思路&#xff1a; 核心思路&#xff1a; 两点确定一条直线&#xff1a; 思路详解&#xff1a; 代码&#xff1a; 第一种方式代码详解&#xff1a; 第二种方式代码详解&#xff1a; 题目&#xff1a;…...

向量数据库实践:存储和检索向量数据

向量数据库是一种专门设计用于存储和检索向量嵌入的数据库系统&#xff0c;能够支持语义搜索、推荐系统、图像识别等 AI 应用场景。 下面将详细介绍向量数据库中向量数据的存储和检索原理及实际应用&#xff0c;希望对各位读者有所帮助。 一. 向量数据的存储与检索流程 在向量…...

Pandas 数据导出:如何将 DataFrame 追加到 Excel 的不同工作表

在数据分析和数据处理过程中&#xff0c;将数据导出到 Excel 文件是一个常见的需求。Pandas 提供了强大的功能来实现这一需求&#xff0c;尤其是将数据追加到同一个 Excel 文件的不同工作表&#xff08;Sheet&#xff09;中。本文将详细介绍如何使用 Pandas 实现这一功能&#…...

区块链驱动的供应链金融创新:模型构建与商业化路径研究

区块链驱动的供应链金融创新&#xff1a;模型构建与商业化路径研究 1. 研究背景与意义 1.1 背景介绍 全球供应链金融市场规模预计2025年将达到3.6万亿美元&#xff0c;但传统模式面临四大核心问题&#xff1a;信息孤岛导致信任成本高昂&#xff08;占交易成本15-20%&#xf…...

DAX Studio将PowerBI与EXCEL连接

DAX Studio将PowerBI与EXCEL连接 具体步骤如下&#xff1a; 第一步&#xff1a;先打开一个PowerBI的文件&#xff0c;在外部工具栏里打开DAXStudio&#xff0c;如图&#xff1a; 第二步&#xff1a;DAXStudio界面&#xff0c;点击Advanced选项卡-->Analyze in Excel&#…...

使用springboot+easyexcel实现导出excel并合并指定单元格

1&#xff1a;准备一个单元格合并策略类代码&#xff1a; import com.alibaba.excel.metadata.Head; import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.excel.write.handler.CellWriteHandler; import com.alibaba.excel.write.metadata.holder.Writ…...

conformer编码器

abstract 最近,基于Transformer和卷积神经网络(CNN)的模型在自动语音识别(ASR)中显示出有希望的结果,优于递归神经网络(RNN)。Transformer模型擅长捕捉基于内容的全局交互,而CNN则有效地利用了局部特征。在这项工作中,我们通过研究如何将联合收割机卷积神经网络和tr…...

每日c/c++题 备战蓝桥杯(P1252洛谷 马拉松接力赛)

洛谷P1060 马拉松接力赛题解&#xff1a;贪心算法在资源分配中的巧妙应用 题目描述 P1060 马拉松接力赛是一道结合贪心策略与动态规划思想的资源分配问题。题目要求将25公里的马拉松接力赛合理分配给5名选手&#xff0c;使得总耗时最短。每位选手可跑1-10公里的整数距离&…...

操作指南:vLLM 部署开源大语言模型(LLM)

vLLM 是一个专为高效部署大语言模型&#xff08;LLM&#xff09;设计的开源推理框架&#xff0c;其核心优势在于显存优化、高吞吐量及云原生支持。 vLLM 部署开源大模型的详细步骤及优化策略&#xff1a; 一、环境准备与安装 安装 vLLM 基础安装&#xff1a;通过 pip 直接安装…...

目前市面上知名的数据采集器

程序员爱自己动手打造一切&#xff0c;但这样离钱就会比较远。 市面上知名的数据采集工具 数据采集工具&#xff08;也称为网络爬虫或数据抓取工具&#xff09;在市场上有很多选择&#xff0c;以下是目前比较知名和广泛使用的工具分类介绍&#xff1a; 一、开源免费工具 Scra…...

BitNet: 微软开源的 1-bit 大模型推理框架

GitHub&#xff1a;https://github.com/microsoft/BitNet 更多AI开源软件&#xff1a;发现分享好用的AI工具、AI开源软件、AI模型、AI变现 - 小众AI 微软专为 CPU 本地推理和极致压缩&#xff08;低比特&#xff09;大模型设计的推理框架。它支持对 1-bit/1.58-bit 量化模型进行…...

前端如何获取文件的 Hash 值?多种方式详解、对比与实践指南

文章目录 前言一、Hash 值为何重要&#xff1f;二、Hash 值基础知识2.1 什么是 Hash&#xff1f;2.2 Hash 在前端的应用场景2.3 常见的 Hash 算法&#xff08;MD5、SHA 系列&#xff09; 三、前端获取文件 Hash 的常用方式3.1 使用 SparkMD5 计算 MD5 值3.2 使用 Web Crypto AP…...

Java与Kotlin在Android开发中的全面对比分析

趋势很重要 语言发展背景与现状 Android操作系统自2008年正式发布以来&#xff0c;Java长期作为其主要的开发语言。这种选择源于Java语言的跨平台特性、成熟的生态系统以及广泛开发者基础。然而&#xff0c;随着移动开发需求的快速演变&#xff0c;Java在Android开发中逐渐暴…...

Android Kotlin 依赖注入全解:Koin appModule 配置与多 ViewModel 数据共享实战指南

一、基础配置与概念 1. 什么是 appModule appModule 是 Koin 依赖注入框架中的核心配置模块&#xff0c;用于集中管理应用中的所有依赖项。它本质上是一个 Koin 模块&#xff08;org.koin.core.module.Module&#xff09;&#xff0c;通过 DSL 方式声明各种组件的创建方式和依…...

Flink TaskManager详解

1. TaskManager 概述 Apache Flink 的 TaskManager 是作业执行的核心工作节点&#xff0c;负责实际的数据处理任务。它与 JobManager 协同工作&#xff0c;接受其调度指令&#xff0c;管理本地资源&#xff08;如 CPU、内存、网络&#xff09;&#xff0c;并执行具体的算子&am…...

Docker安装(Ubuntu22版)

前言 你是否还在为Linux上配置Docker而感到烦恼&#xff1f; 你是否还在为docker search&#xff0c;docker pull连接不上&#xff0c;而感到沮丧&#xff1f; 本文将解决以上你的所有烦恼&#xff01;快速安装好docker&#xff01; Docker安装 首先&#xff0c;我们得先卸载…...

《深入浅出ProtoBuf:从环境搭建到高效数据序列化》​

ProtoBuf详解 1、初识ProtoBuf2、安装ProtoBuf2.1、ProtoBuf在Windows下的安装2.2、ProtoBuf在Linux下的安装 3、快速上手——通讯录V1.03.1、步骤1&#xff1a;创建.proto文件3.2、步骤2&#xff1a;编译contacts.proto文件&#xff0c;生成C文件3.3、步骤3&#xff1a;序列化…...

【含文档+PPT+源码】基于微信小程序连锁药店商城

项目介绍 本课程演示的是一款基于微信小程序连锁药店商城&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3.该项目附带的…...

再见,物理删除!MyBatis-Plus @TableLogic 优雅实现逻辑删除

在开发应用程序时&#xff0c;我们经常会遇到需要删除数据的场景。但直接从数据库中物理删除&#xff08;DELETE​&#xff09;数据有时并非最佳选择。为什么呢&#xff1f; 数据恢复: 一旦物理删除&#xff0c;数据通常难以恢复&#xff0c;误操作可能导致灾难性后果。审计追…...

uni-app中获取用户实时位置完整指南:解决权限报错问题

uni-app中获取用户实时位置完整指南&#xff1a;解决权限报错问题 在uni-app开发运行在微信小程序时&#xff0c;获取用户位置信息是一个常见的需求&#xff0c;无论是用于地图导航、附近推荐还是其他基于位置的服务。然而&#xff0c;许多开发者在调用位置相关API时会遇到各种…...

【AI插件开发】Notepad++ AI插件开发1.0发布和使用说明

一、产品简介 AiCoder是一款为Notepad设计的轻量级AI辅助插件&#xff0c;提供以下核心功能&#xff1a; 嵌入式提问&#xff1a;对选中的文本内容进行AI分析&#xff0c;通过侧边栏聊天界面与AI交互&#xff0c;实现多轮对话、问题解答或代码生成。对话式提问&#xff1a;独…...

UnityEditor - 调用编辑器菜单功能

例如: 调用Edit/Frame Selected In Scene EditorApplication.ExecuteMenuItem("Edit/Frame Selected in Scene"); EditorApplication.ExecuteMenuItem("Edit/Lock view to Selected");...

OpenHarmony - 小型系统内核(LiteOS-A)(十),魔法键使用方法,用户态异常信息说明

OpenHarmony - 小型系统内核&#xff08;LiteOS-A&#xff09;&#xff08;十&#xff09; 十四、魔法键使用方法 使用场景 在系统运行出现无响应等情况时&#xff0c;可以通过魔法键功能确定系统是否被锁中断&#xff08;魔法键也无响应&#xff09;或者查看系统任务运行状态…...

在 Vue3 中封装的 Axios 实例中,若需要为部分接口提供手动取消请求的功能

核心思路 封装接口时返回 Promise 和 abort 方法&#xff1a; 为需要支持取消的接口返回一个对象&#xff0c;包含 promise 和 abort 方法&#xff0c;用户可通过 abort 主动中断请求。使用 AbortController 或 CancelToken&#xff1a; 推荐 AbortController&#xff08;浏览…...

QuecPython+audio:实现音频的录制与播放

概述 QuecPython 作为专为物联网设计的开发框架&#xff0c;通过高度封装的 Python 接口为嵌入式设备提供了完整的音频处理能力。本文主要介绍如何利用 QuecPython 快速实现音频功能的开发。 核心优势 极简开发&#xff1a;3行代码完成基础音频录制与播放。快速上手&#xf…...

Langchain入门介绍

[声明] 本文参考:Langchain官方文档 什么是LangChain? LangChain 是一个开源的、用于开发由大型语言模型 (LLM) 驱动的应用程序的框架。它的核心目标是将强大的 LLM&#xff08;如 GPT-4, Claude, Llama 等&#xff09;与外部数据源、计算资源和工具连接起来&#xff0c;从…...

WebUI可视化:第4章:Streamlit数据可视化实战

学习目标 ✅ 掌握Streamlit的安装与基础配置 ✅ 能够创建数据驱动的交互式界面 ✅ 实现常见图表(折线图、柱状图等)的绘制 ✅ 开发完整的业务数据分析应用 4.1 Streamlit快速入门 4.1.1 环境安装 打开终端执行: bash pip install streamlit 验证安装: bash stream…...

3.4 Spring Boot异常处理

本实战项目通过Spring Boot实现了一个简单的用户信息查询功能&#xff0c;并展示了如何自定义异常处理机制。项目中创建了用户实体类User和用户控制器UserController&#xff0c;在控制器中通过isValidUserId方法校验用户ID是否有效&#xff0c;若无效则抛出自定义异常InvalidU…...

期货有哪些种类?什么是股指、利率和外汇期货?

期货主要可以分成两大类&#xff1a;商品期货和金融期货。商品期货&#xff0c;顾名思义&#xff0c;就是跟实物商品有关的期货&#xff0c;比如农产品、金属、能源这些。金融期货呢&#xff0c;就是跟金融产品有关的期货&#xff0c;比如外汇、利率、股票指数这些。 一、商品…...

Golang | 位运算

位运算比常规运算快&#xff0c;常用于搜索引擎的筛选功能。例如&#xff0c;数字除以二等价于向右移位&#xff0c;位移运算比除法快。...

[论文阅读]ReAct: Synergizing Reasoning and Acting in Language Models

ReAct: Synergizing Reasoning and Acting in Language Models [2210.03629] ReAct: Synergizing Reasoning and Acting in Language Models ICLR 2023 这是一篇在2022年挂出来的论文&#xff0c;不要以现在更加强大且性能综合的LLM来对这篇文章进行批判。 思想来源于作者对…...

拥有600+门店的宠物连锁医院,实现核心业务系统上云

瑞派宠物医院管理股份有限公司&#xff08;以下简称“瑞派宠物“&#xff09;从2017年开始数字化转型之路。瑞派宠物在全国有600连锁门店&#xff0c;随着业务量增加&#xff0c;线下部署的财务系统存在设备老旧、机房环境差等问题&#xff0c;部分在公有云上的业务&#xff0c…...

OceanBase 跻身 Forrester 三大领域代表厂商,全面支撑AI场景

在生成式AI迅猛发展的当下&#xff0c;智能化数据管理已成为企业提升数字化水平、优化运营效率和强化市场竞争优势的战略重点。Forrester 最新发布的《2025年中国数据管理生态系统趋势报告》中&#xff0c;OceanBase凭借原生分布式架构和一体化产品优势&#xff0c;入选 全局数…...

学生管理系统微服务方式实现

//不用这种方式实现也可以&#xff0c;用这种方式是为了房间我们理解微服务的实现方式 微服务的实现方式就是把一个单项目应用的不同功能封装成单独的项目&#xff0c;然后向外暴露一个接口以便调用。如果需要这个功能我们直接调用这个功能对应项目的接口就可以了 服务之间的…...

OpenAI最新的4o图像生成模型 gpt-image-1 深度解析:API KEY 获取、开发代码示例

1. 引言 近期&#xff0c;OpenAI 正式发布了其最新的图像生成 API&#xff0c;模型标识符为 gpt-image-1。这一重要发布&#xff0c;首次将先前在 ChatGPT 中通过 GPT-4o 模型驱动、备受用户欢迎的先进图像生成能力&#xff0c;以编程接口&#xff08;API&#xff09;的形式提…...

NAT穿透

NAT是 Net Address Traslation的缩写&#xff0c;即网络地址转换 NAT部署在网络出口的位置。位于内网和公网之间&#xff0c;是连接内挖个主机和公网的桥梁&#xff0c;双向流量都必须经过NAT&#xff0c;装有NAT软件的路由器叫NAT路由器&#xff0c;NAT路由器拥有公网Ip NAT解…...

人工智能与机器学习:Python从零实现性回归模型

&#x1f9e0; 向所有学习者致敬&#xff01; “学习不是装满一桶水&#xff0c;而是点燃一把火。” —— 叶芝 我的博客主页&#xff1a; https://lizheng.blog.csdn.net &#x1f310; 欢迎点击加入AI人工智能社区&#xff01; &#x1f680; 让我们一起努力&#xff0c;共创…...

FreeRTOS

FreeRTOS任务调度的三种方式&#xff1a; 抢占式调度 针对优先级不同的任务 时间片调度 针对优先级相同的任务&#xff1b; FreeRTOS中的一个时间片就等于SysTick&#xff08;滴答定时器&#xff09;中断周期&#xff08;1ms&#xff09;; 协程式调度 后续将不再支持。 …...

PCI 总线学习笔记(五)

PCI 总线学习系列&#xff0c;参考自 技术大牛博客&#xff1a; PCIe 扫盲系列博文连载目录篇 书籍&#xff1a;王齐老师的《PCI Express 体系结构导读》 下面的文章中加入了自己的一些理解和实际使用中遇到的一些场景&#xff0c;供日后查询和回忆使用 PCI 总线定义了两类配置…...

PyTorch与CUDA的关系

文章目录 前言一、如何查看PyTorch和torchvision的版本1.1 查看PyTorch版本1.2 查看torchvision版本二、如何确认PyTorch和torchvision是否支持CUDA加速2.1 检查PyTorch是否支持CUDA2.2 查看当前可用的GPU设备2.3 检查torchvision是否支持CUDA三、CUDA版本的秘密:为什么PyTorc…...