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

P2572 [SCOI2010] 序列操作 Solution

Description

给定 01 01 01 序列 a = ( a 1 , a 2 , ⋯ , a n ) a=(a_1,a_2,\cdots,a_n) a=(a1,a2,,an),并定义 f ( l , r ) = [ ( ∑ i = l r a i ) = r − l + 1 ] f(l,r)=[(\sum\limits_{i=l}^r a_i)=r-l+1] f(l,r)=[(i=lrai)=rl+1].
执行 m m m 个操作,分五种:

  • reset ⁡ ( l , r ) \operatorname{reset}(l,r) reset(l,r):对每个 i ∈ [ l , r ] i\in[l,r] i[l,r] 执行 a i ← 0 a_i\gets 0 ai0.
  • set ⁡ ( l , r ) \operatorname{set}(l,r) set(l,r):对每个 i ∈ [ l , r ] i\in[l,r] i[l,r] 执行 a i ← 1 a_i\gets 1 ai1.
  • negate ⁡ ( l , r ) \operatorname{negate}(l,r) negate(l,r):对每个 i ∈ [ l , r ] i\in[l,r] i[l,r] 执行 a i ← 1 − a i a_i\gets 1-a_i ai1ai.
  • sum ⁡ ( l , r ) \operatorname{sum}(l,r) sum(l,r):求 ∑ i = l r a i \sum\limits_{i=l}^r a_i i=lrai.
  • gss ⁡ ( l , r ) \operatorname{gss}(l,r) gss(l,r):求 max ⁡ [ s , t ] ∈ [ l , r ] ( t − s + 1 ) × f ( s , t ) \max\limits_{[s,t]\in[l,r]}(t-s+1)\times f(s,t) [s,t][l,r]max(ts+1)×f(s,t).

Limitations

1 ≤ n , m ≤ 1 0 5 1\le n,m\le 10^5 1n,m105
1 ≤ l ≤ r ≤ n 1\le l\le r\le n 1lrn
1 s , 128 MB 1\text{s},128\text{MB} 1s,128MB

Solution

线段树做法.
节点上维护 S = ( sum , lsum , rsum , tsum , len ) S=(\textit{sum},\textit{lsum},\textit{rsum},\textit{tsum},\textit{len}) S=(sum,lsum,rsum,tsum,len),用类似最大子段和的方法更新.
由于要取反, 0 0 0 1 1 1 都分别需要一个 S S S(下记为 S 0 S_0 S0 S 1 S_1 S1) .
然后需要标记 T T T,显然 T = ( cov , rev ) T=(\textit{cov},\textit{rev}) T=(cov,rev)(分别为赋值和取反标记)

  • 考虑赋值,我们直接将 S c o v S_{cov} Scov 全部填上 len \textit{len} len S 1 − c o v S_{1-cov} S1cov 全部清零( len \textit{len} len 要不变)
  • 考虑翻转,我们直接交换 S 0 S_0 S0 S 1 S_1 S1.

然后需要考虑 T + T T+T T+T

  • 赋值可以直接打标记.
  • 对于取反,当一个区间赋值后,取反就相当于赋值 ( 1 − cov ) (1-\textit{cov}) (1cov),那么我们可以将 cov \textit{cov} cov 取反(此时 rev \textit{rev} rev 没用,要置为 0 0 0),否则,直接更新 rev \textit{rev} rev.

有不少坑点:

  • 下标从 0 0 0 开始.
  • 没有被赋值的节点, cov \textit{cov} cov 要置为 − 1 -1 1 表示没有赋值.
  • 更新 S S S 时,左半区间满了, lsum \textit{lsum} lsum 才能跨越中点, rsum \textit{rsum} rsum 同理.
  • 先处理 cov \textit{cov} cov 再处理 rev \textit{rev} rev.
  • rev \textit{rev} rev 标记时 ^= 1 不要写成 = 1.

Code

3.9 KB , 0.45 s , 11.63 MB (in total, C++20 with O2) 3.9\text{KB},0.45\text{s},11.63\text{MB}\;\texttt{(in total, C++20 with O2)} 3.9KB,0.45s,11.63MB(in total, C++20 with O2)
建议封装 S S S(见代码中的 Data),会好写不少.

#include <bits/stdc++.h>
using namespace std;using i64 = long long;
using ui64 = unsigned long long;
using i128 = __int128;
using ui128 = unsigned __int128;
using f4 = float;
using f8 = double;
using f16 = long double;template<class T>
bool chmax(T &a, const T &b){if(a < b){ a = b; return true; }return false;
}template<class T>
bool chmin(T &a, const T &b){if(a > b){ a = b; return true; }return false;
}namespace seg_tree {struct Data {int sum, lsum, rsum, tsum, len;inline Data() {}inline Data(int x) : sum(x), lsum(x), rsum(x), tsum(x), len(1) {}inline Data(int _sum, int _lsum, int _rsum, int _tsum, int _len): sum(_sum), lsum(_lsum), rsum(_rsum), tsum(_tsum), len(_len) {}};inline Data operator+(const Data& lhs, const Data& rhs) {const int _sum = lhs.sum + rhs.sum;const int _lsum = lhs.lsum + (lhs.sum == lhs.len) * rhs.lsum;const int _rsum = rhs.rsum + (rhs.sum == rhs.len) * lhs.rsum;const int _tsum = std::max({lhs.tsum, rhs.tsum, lhs.rsum + rhs.lsum});const int _len = lhs.len + rhs.len;return Data(_sum, _lsum, _rsum, _tsum, _len);}struct Node {int l, r;array<Data, 2> dat;int cov, rev;inline Data& operator[](int i) { return dat[i]; }inline Data operator[](int i) const { return dat[i]; }};inline int ls(int u) { return 2 * u + 1; }inline int rs(int u) { return 2 * u + 2; }struct SegTree {vector<Node> tr;inline SegTree() {}inline SegTree(const vector<int>& a) {const int n = a.size();tr.resize(n << 1);build(0, 0, n - 1, a);}inline void pushup(int u, int mid) {for (int i = 0; i < 2; i++) tr[u][i] = tr[ls(mid)][i] + tr[rs(mid)][i];}inline void apply(int u, int cov, int rev) {if (~cov) {const int len = tr[u][cov].len;tr[u][cov] = Data(len, len, len, len, len);tr[u][cov ^ 1] = Data(0, 0, 0, 0, len);tr[u].cov = cov;tr[u].rev = 0;return;}if (rev) {swap(tr[u][0], tr[u][1]);if (~tr[u].cov) tr[u].cov ^= 1;else tr[u].rev ^= 1;}}inline void pushdown(int u, int mid) {apply(ls(mid), tr[u].cov, tr[u].rev);apply(rs(mid), tr[u].cov, tr[u].rev);tr[u].cov = -1, tr[u].rev = 0;}void build(int u, int l, int r, const vector<int>& a) {tr[u].l = l, tr[u].r = r, tr[u].cov = -1;if (l == r) {for (int i = 0; i < 2; i++) tr[u][i] = Data(a[l] == i);return;}const int mid = (l + r) >> 1;build(ls(mid), l, mid, a);build(rs(mid), mid + 1, r, a);pushup(u, mid);}void update(int u, int l, int r, int cov, int rev) {if (l <= tr[u].l && tr[u].r <= r) return apply(u, cov, rev);const int mid = (tr[u].l + tr[u].r) >> 1;pushdown(u, mid);if (l <= mid) update(ls(mid), l, r, cov, rev);if (r > mid) update(rs(mid), l, r, cov, rev);pushup(u, mid);}Data query(int u, int l, int r) {if (l <= tr[u].l && tr[u].r <= r) return tr[u][1];const int mid = (tr[u].l + tr[u].r) >> 1;pushdown(u, mid);if (r <= mid) return query(ls(mid), l, r);else if (l > mid) return query(rs(mid), l, r);else return query(ls(mid), l, r) + query(rs(mid), l, r);}inline void range_cover(int l, int r, int v) { update(0, l, r, v, 0); }inline void range_negate(int l, int r) { update(0, l, r, -1, 1); }inline int range_sum(int l, int r) { return query(0, l, r).sum; }inline int range_gss(int l, int r) { return query(0, l, r).tsum; }};
}
using seg_tree::SegTree;signed main() {ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int n, m;scanf("%d %d", &n, &m);vector<int> a(n);for (int i = 0; i < n; i++) scanf("%d", &a[i]);SegTree sgt(a);for (int i = 0, op, l, r; i < m; i++) {scanf("%d %d %d", &op, &l, &r);if (op == 0) sgt.range_cover(l, r, 0);if (op == 1) sgt.range_cover(l, r, 1);if (op == 2) sgt.range_negate(l, r);if (op == 3) printf("%d\n", sgt.range_sum(l, r));if (op == 4) printf("%d\n", sgt.range_gss(l, r));}return 0;
}

相关文章:

P2572 [SCOI2010] 序列操作 Solution

Description 给定 01 01 01 序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1​,a2​,⋯,an​)&#xff0c;并定义 f ( l , r ) [ ( ∑ i l r a i ) r − l 1 ] f(l,r)[(\sum\limits_{il}^r a_i)r-l1] f(l,r)[(il∑r​ai​)r−l1]. 执行 m m m 个操作&am…...

初等数论--欧拉函数积性的证明

文章目录 1. 简介2. 证明一&#xff1a;唯一分解定理容斥原理3. 证明二&#xff1a;中国剩余定理4. 引理证明5. 参考 1. 简介 欧拉函数 ϕ ( n ) \phi(n) ϕ(n)表示在小于等于 n n n的正整数中与 n n n互质的个数。 如 ϕ ( 6 ) 2 ( 1 5 ) ϕ ( 12 ) 4 ( 1 5 7 11 ) \phi(…...

MCP(Model Context Protocol)是专为LLM(大语言模型)应用设计的标准化协议

核心定义 MCP&#xff08;Model Context Protocol&#xff09;是专为LLM&#xff08;大语言模型&#xff09;应用设计的标准化协议&#xff0c;通过安全可控的方式向AI应用暴露数据和功能。主要提供以下能力&#xff1a; 标准化的上下文管理安全的功能调用接口跨平台的数据交…...

Midscene.js Chrome 插件实战:AI 驱动的 UI 自动化测试「喂饭教程」

Midscene.js Chrome 插件实战:AI 驱动的 UI 自动化测试「喂饭教程」 前言一、Midscene.js 简介二、环境准备与插件安装1. 安装 Chrome 插件2. 配置模型与 API Key三、插件界面与功能总览四、实战演练:用自然语言驱动网页自动化1. 典型场景一(Action):账号登录步骤一:打开…...

Python在大数据机器学习模型的多模态融合:深入探索与实践指南

一、多模态融合的全面概述 1.1 多模态融合的核心概念 多模态融合(Multimodal Fusion)是指将来自不同传感器或数据源(如图像、文本、音频、视频、传感器数据等)的信息进行有效整合,以提升机器学习模型的性能和鲁棒性。在大数据环境下,多模态融合面临着独特的挑战和机遇: 数…...

C++ 访问者模式详解

访问者模式&#xff08;Visitor Pattern&#xff09;是一种行为设计模式&#xff0c;它允许你将算法与对象结构分离&#xff0c;使得可以在不修改现有对象结构的情况下定义新的操作。 核心概念 设计原则 访问者模式遵循以下设计原则&#xff1a; 开闭原则&#xff1a;可以添…...

实验-有限状态机2(数字逻辑)

目录 一、实验内容 1.1 介绍 1.2 内容 二、实验步骤 2.1 电路原理图 2.2 步骤 2.3 状态图 4.4 状态转换表和输出表 2.5 具体应用场景 三、调试 四、实验使用环境 五、实验小结与思考 5.1 遇到的问题及解决方法 5.2 实验收获 一、实验内容 1.1 介绍 在解决更复…...

IC解析之TPS92682-Q1(汽车LED灯控制IC)

目录 1 IC特性介绍2 主要参数3 接口定义4 工作原理分析TPS92682-Q1架构工作模式典型应用通讯协议 控制帧应答帧协议5 总结 1 IC特性介绍 TPS92682 - Q1 是德州仪器&#xff08;TI&#xff09;推出的一款双通道恒压横流控制器&#xff0c;同时还具有各种电器故障保护&#xff0c…...

数据结构-堆

目录 heapq 导入 初始化 插入元素 返回最小值 PriorityQueue 导入 初始化 入队 出队 堆是一颗树&#xff0c;其每个节点都有一个值&#xff0c;且&#xff08;小根堆&#xff1a;每个父节点都小于等于其子节点 &#xff08;在进树时不断进行比较 STL中的 priority…...

提升编程效率的利器:Zed高性能多人协作代码编辑器

在当今这个快节奏的开发环境中&#xff0c;一个高效、灵活的代码编辑器无疑对开发者们起着至关重要的支持作用。Zed&#xff0c;作为来自知名编辑器Atom和语法解析器Tree-sitter的创造者的心血之作&#xff0c;正是这样一款高性能支持多人合作的编辑神器。本文将带领大家深入探…...

【25软考网工】第六章 网络安全(1)网络安全基础

博客主页&#xff1a; christine-rr-CSDN博客 专栏主页&#xff1a; 软考中级网络工程师笔记 大家好&#xff0c;我是christine-rr !目前《软考中级网络工程师》专栏已经更新二十多篇文章了&#xff0c;每篇笔记都包含详细的知识点&#xff0c;希望能帮助到你&#xff01; 今日…...

Java中的包装类

目录 为什么要有包装类 包装类的作用 基本数据类型和包装类的对应关系 包装类的核心功能 装箱&#xff08;Boxing&#xff09;和拆箱&#xff08;Unboxing&#xff09; 装箱&#xff1a; 拆箱&#xff1a; 类型转换 字符串<----->基本类型 进制转换 自动装箱与…...

催缴机器人如何实现停车费追缴“零遗漏”?

面对高达35%的停车欠费率&#xff0c;传统人工催缴模式因效率低、成本高、覆盖有限等问题&#xff0c;难以应对海量欠费订单的挑战。本文带大家探究“催缴机器人”如何实现停车费追缴“零遗漏”&#xff0c;实现从“被动催缴”到“主动管理”的跨越。 智慧停车欠费自动化追缴系…...

Oracle 执行计划中的 ACCESS 和 FILTER 详解

Oracle 执行计划中的 ACCESS 和 FILTER 详解 在 Oracle 执行计划中&#xff0c;ACCESS 和 FILTER 是两个关键的操作类型&#xff0c;它们描述了 Oracle 如何检索和处理数据。理解这两个概念对于 SQL 性能调优至关重要。 ACCESS&#xff08;访问&#xff09; ACCESS 表示 Ora…...

使用FastAPI微服务在AWS EKS中构建上下文增强型AI问答系统

系统概述 本文介绍如何使用FastAPI在AWS Elastic Kubernetes Service (EKS)上构建一个由多个微服务组成的AI问答系统。该系统能够接收用户输入的提示(prompt)&#xff0c;通过调用其他微服务从AWS ElastiCache on Redis和Amazon DynamoDB获取相关上下文&#xff0c;然后利用AW…...

oracle dblink varchar类型查询报错记录

在使用Oracle DBLink&#xff08;数据库链接&#xff09;查询VARCHAR类型数据时&#xff0c;有时会遇到报错问题。这些错误可能与数据类型转换、字符集设置、数据库版本兼容性等因素有关。本文将详细分析常见的报错原因及其解决方法。 一、常见报错及其原因 1. ORA-01722: in…...

计算人声录音后电平的大小(dB SPL->dBFS)

计算人声录音后电平的大小 这里笔记记录一下&#xff0c;怎么计算已知大小的声音&#xff0c;经过麦克风、声卡录制后软件内录得的音量电平值。&#xff08;文章最后将计算过程整理为Python代码&#xff0c;方便复用&#xff09; 假设用正常说话的声音大小65dB&#xff08;SP…...

Android kernel日志中healthd关键词意义

Android kernel日志中healthd关键词意义 在kernel的healthd日志中会打印电池信息。通常比较关心的是电池温度&#xff0c;剩余电量&#xff0c;电压&#xff0c;电池健康&#xff0c;电池状况等。 level&#xff1a;剩余电量。 voltage&#xff1a;电压。 temperature&#xff…...

操作系统面试问题(4)

32.什么是操作系统 操作系统是一种管理硬件和软件的应用程序。也是运行在计算机中最重要的软件。它为硬件和软件提供了一种中间层&#xff0c;让我们无需关注硬件的实现&#xff0c;把心思花在软件应用上。 通常情况下&#xff0c;计算机上会运行着许多应用程序&#xff0c;它…...

【nestjs】一般学习路线

nestjs中文文档 其实几个月前也对nestjs进行了学习&#xff0c;前前后后看了很多文档、博客&#xff0c;另外也找了相应的代码看了&#xff0c;但最后也还是一知半解&#xff0c;只是知道大概怎么写&#xff0c;怎么用。 这次下定决心再次看一遍&#xff0c;从代码学习到文档…...

多线程面试题总结

基础概念 进程与线程的区别 进程:操作系统资源分配的基本单位,有独立内存空间线程:CPU调度的基本单位,共享进程资源对比: 创建开销:进程 > 线程通信方式:进程(IPC)、线程(共享内存)安全性:进程更安全(隔离),线程需要同步线程的生命周期与状态转换 NEW → RUNNABLE …...

面试常考算法2(核心+acm模式)

15. 三数之和 核心代码模式 class Solution {public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> ansnew ArrayList<>();Arrays.sort(nums);int lennums.length;int pre2000000;for(int i0;i<len-2;i){while(i<len-…...

虚拟文件系统

虚拟文件系统&#xff08;Virtual File System&#xff0c;VFS&#xff09;是操作系统内核中的一个抽象层&#xff0c;它为不同的文件系统&#xff08;如ext4、NTFS、FAT32等&#xff09;提供统一的访问接口。通过VFS&#xff0c;用户和应用程序无需关心底层文件系统的具体差异…...

机器学习与深度学习的区别与联系:多角度详细分析

机器学习与深度学习的区别与联系&#xff1a;多角度详细分析 引言 随着人工智能技术的快速发展&#xff0c;机器学习和深度学习已成为当今科技领域的核心驱动力。尽管这两个术语经常被一起提及&#xff0c;甚至有时被互换使用&#xff0c;但它们之间存在着明显的区别和紧密的…...

c++:迭代器(Iterator)

目录 &#x1f6aa;什么是迭代器&#xff1f; &#x1f527; 迭代器的本质 为什么不用普通数组或下标&#xff1f; STL容器的迭代器并不是共用一个类型&#xff01; 迭代器的类型&#xff08;Iterator Categories&#xff09; &#x1f4e6; 常见容器的迭代器类型 ✅ 迭…...

MindSpore框架学习项目-ResNet药物分类-数据增强

目录 1.数据增强 1.1设置运行环境 1.1.1数据预处理 数据预处理代码解析 1.1.2数据集划分 数据集划分代码说明 1.2数据增强 1.2.1创建带标签的可迭代对象 1.2.2数据预处理与格式化&#xff08;ms的data格式&#xff09; 从原始图像数据到 MindSpore 可训练 / 评估的数…...

python打卡day20

特征降维------特征组合&#xff08;以SVD为例&#xff09; 知识点回顾&#xff1a; 奇异值的应用&#xff1a; 特征降维&#xff1a;对高维数据减小计算量、可视化数据重构&#xff1a;比如重构信号、重构图像&#xff08;可以实现有损压缩&#xff0c;k 越小压缩率越高&#…...

2025数维杯数学建模B题完整限量论文:马拉松经济的高质量发展思路探索

2025数维杯数学建模B题完整限量论文&#xff1a;马拉松经济的高质量发展思路探索&#xff0c;先到先得 B题完整论文https://www.jdmm.cc/file/2712066/ 近年来&#xff0c;我国马拉松赛事数量呈现 “ 先井喷、后调整、再复苏 ” 的显著 变化。据中国田径协会数据&#xff0c; …...

深入解析WPF中的3D图形编程:材质与光照

引言 在Windows Presentation Foundation (WPF) 中创建三维(3D)图形是一项既有趣又具有挑战性的任务。为了帮助开发者更好地理解如何使用WPF进行3D图形的渲染&#xff0c;本文将深入探讨GeometryModel3D类及其相关的材质和光源设置。 1、GeometryModel3D类简介 GeometryMode…...

python格式化小数加不加f的区别

一直好奇这个f是必须加的吗&#xff0c;但是不论是搜索还是ai都给不出准确的回复&#xff0c;就自己测试了一下 结论是不带f指定的是总的数字个数&#xff0c;包含小数点前的数字 带f的就是仅指小数点后数字个数 需要注意的是不带f的话数字是会用科学计数法表示的&#xff…...

【MySQL】存储引擎 - FEDERATED详解

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…...

window 显示驱动开发-线性内存空间段

线性内存空间段是显示硬件使用的经典段类型。 线性内存空间段符合以下模型&#xff1a; 它虚拟化位于图形适配器上的视频内存。GPU 直接访问它;也就是说&#xff0c;无需通过页面映射进行重定向。它在一维地址空间中以线性方式进行管理。 驱动程序将DXGK_SEGMENTDESCRIPTOR结…...

uniapp-商城-46-创建schema并新增到数据库

在后台页面中&#xff0c;数据管理是关键。最初&#xff0c;数据可能是通过代码硬编码在页面中&#xff0c;但这种方式缺乏灵活性和扩展性。为了适应实际需求&#xff0c;应使用数据库来存储数据&#xff0c;允许用户自行添加和更新信息。通过数据库&#xff0c;后台页面可以动…...

Go语言的宕机恢复,如何防止程序奔溃

Go语言中的panic机制用于处理程序中无法继续执行的严重错误。当程序触发panic时&#xff0c;当前函数的执行会立即停止&#xff0c;程序开始逐层向上回溯调用栈&#xff0c;执行每个函数的defer语句&#xff0c;直到到达recover函数或者程序崩溃退出。通过recover函数&#xff…...

阅文集团C++面试题及参考答案

能否不使用锁保证多线程安全&#xff1f; 在多线程编程中&#xff0c;锁&#xff08;如互斥锁、信号量&#xff09;是实现线程同步的传统方式&#xff0c;但并非唯一方式。不使用锁保证多线程安全的核心思路是避免共享状态、使用原子操作或采用线程本地存储。以下从几个方面详…...

三款实用电脑工具

今天为大家精心推荐三款实用软件&#xff0c;分别是人声伴奏分离软件、文件夹迁移软件和文字转拼音软件。 第一款&#xff1a;NovaMSS NovaMSS是一款功能强大的人声伴奏分离软件&#xff0c;它提供社区版和专业版&#xff0c;社区版永久免费。 该软件能够一键提取人声、伴奏、…...

【图片识别内容改名】图片指定区域OCR识别并自动重命名,批量提取图片指定内容并重命名,基于WPF和阿里云OCR识别的解决

基于WPF和阿里云OCR的图片区域识别与自动重命名解决方案 应用场景 ​​电商商品管理​​:批量处理商品图片,从固定区域识别商品名称、型号、价格等信息,重命名为"商品名称_型号_价格.jpg"格式​​档案数字化​​:扫描后的合同、文件等图片,从固定位置识别合同编…...

可再生能源中的隔离栅极驱动器:光伏逆变器的游戏规则改变者

在迈向可持续未来的征程中&#xff0c;可再生能源已成为全球发展的基石。在可再生能源中&#xff0c;太阳能以其可及性和潜力脱颖而出。光伏(PV)逆变器是太阳能系统的核心&#xff0c;它严重依赖先进技术将太阳能电池板的直流电转换为可用的交流电。隔离栅极驱动器就是这样一种…...

解决:EnvironmentNameNotFound: Could not find conda environment?

明明创建了环境却找不到&#xff1f; conda env list 查看所有环境 使用绝对路径激活 conda activate /home/guokaiyin/miniconda3/envs/synthocc...

Java SE(10)——抽象类接口

1.抽象类 1.1 概念 在之前讲Java SE(6)——类和对象&#xff08;一&#xff09;的时候说过&#xff0c;所有的对象都可以通过类来抽象。但是反过来&#xff0c;并不是说所有的类都是用来抽象一个具体的对象。如果一个类本身没有足够的信息来描述一个具体的对象&#xff0c;而…...

数据结构与算法—顺序表和链表(1)

数据结构与算法—顺序表&#xff08;1&#xff09; 线性表顺序表概念与结构分类静态顺序表动态顺序表 动态顺序表的实现 线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。线性表是⼀种在实际中⼴泛使⽤的数据结构&#xff0c;常⻅的…...

软件测试的概念

需求的概念 开发模型 测试模型 1. 什么是需求 在多数软件公司&#xff0c;会有两部分需求&#xff0c;⼀部分是⽤⼾需求&#xff0c;⼀部分是软件需求。 1.1 ⽤⼾需求 ⽤⼾需求&#xff1a;可以简单理解为甲⽅提出的需求&#xff0c;如果没有甲⽅&#xff0c;那么就是终端⽤⼾…...

基于Qwen-14b的基础RAG实现及反思

1、概览 本文主要介绍RAG的基础实现过程&#xff0c;给初学者提供一些帮助&#xff0c;RAG即检索增强生成&#xff0c;主要是两个步骤&#xff1a;检索、生成&#xff0c;下面将基于这两部分进行介绍。 2、检索 检索的主要目的是在自定义的知识库kb中查询到与问题query相关的候…...

TikTok广告投放优化指南

1. 广告账户时区设置 在创建广告账户时&#xff0c;建议优先选择美国太平洋时区(UTC-8洛杉矶时间)&#xff0c;这有助于与国际投放节奏保持一致。 2. 达人视频授权问题解答 当在广告后台选择"Affiliate post"却找不到已授权的达人视频时&#xff0c;这种情况确实会…...

WorkManager与Kotlin后台任务调度指南

在Android开发中&#xff0c;使用WorkManager和Kotlin可以高效管理后台任务。以下是分步指南及关键概念&#xff1a; 1. 添加依赖项 在build.gradle文件中添加依赖&#xff1a; dependencies {implementation("androidx.work:work-runtime-ktx:2.7.1") }2. 创建Wor…...

生信服务器如何安装cellranger|生信服务器安装软件|单细胞测序软件安装

一.Why cellranger Cell Ranger 是由 10x Genomics 公司开发的一款用于处理其单细胞测序&#xff08;single-cell RNA-seq, scRNA-seq&#xff09;数据的软件套件。它主要用于将原始测序数据&#xff08;fastq 文件&#xff09;转换为可以用于下游分析的格式&#xff0c;比如基…...

Spring Web MVC基础理论和使用

目录 什么是MVC 什么是SpringMVC SpringMVC基础使用 建立连接 RequestMapping介绍 请求 传递参数 传递对象 参数重命名 传递数组 传递JSON数据 获取URL中参数 上传文件 获取Cookie/Session 获取Header 响应 返回静态页面 RestController和Controller的区别 返…...

Go Modules 的基本使用

在 Go Modules 项目中&#xff0c;首次运行时下载依赖包的正确流程需要根据项目情况区分处理。以下是详细步骤和最佳实践&#xff1a; 一、首次初始化项目的标准流程 1.1 创建项目目录并初始化模块 mkdir myproject && cd myproject go mod init github…...

等保系列(三):等保测评的那些事

一、等保测评主要做什么 1、测评准备阶段 &#xff08;1&#xff09;确定测评对象与范围 明确被测系统的边界、功能模块、网络架构及承载的业务。 确认系统的安全保护等级&#xff08;如二级、三级&#xff09;。 &#xff08;2&#xff09;签订测评合同 选择具备资质的测…...

一种海杂波背景下前视海面目标角超分辨成像方法——论文阅读

一种海杂波背景下前视海面目标角超分辨成像方法 1. 专利的研究目标与实际问题1.1 研究目标1.2 实际意义2. 专利的创新方法、公式及优势2.1 总体思路2.2 关键公式及技术细节2.2.1 运动几何模型2.2.2 方位卷积模型2.2.3 贝叶斯反演与迭代方程2.2.4 参数估计2.3 与传统方法的对比优…...