优选算法_前缀和_二维前缀(模板)_C++

优选算法_前缀和_二维前缀(模板)_C++

一.题目分析

这里题目不好理解,就是一个指定大小的矩阵(n行m列),然后再给出两个坐标,之后求两坐标所围成矩阵的和

1.暴力解法->模拟:询问一次就求一次和,所以时间复杂度是q*m*n

2.前缀和

        1.预处理一个前缀和矩阵

我们发现抽出的BC的面积并不好求,所以我们就求好求的面积减去多余面积即可

        

        2.使用前缀和矩阵

二.代码实现

#include<iostream> #include<vector> int mian() { //1.读入数据 int n, m,q; cin >> n >> m >> q; vector<vector<int>>arr(n + 1, vector<int>(m + 1)); for (int i = 1;i <= n;i++) for (int j = 1;j = m;j++) cin >> arr[i][j]; //2.预处理前缀和矩阵 vector<vector<long long>>dp(n + 1, vector<long long>(m + 1)); for (int i = 1;i <= n;i++) for (int j = 1;j = m;j++) dp[i][j] = dp[i - 1][j] + dp[i][j - 1] - dp[i - 1][j - 1] + arr[i][j]; //3.使用前缀和矩阵 int q; cin >> q; while (q) { int x1, y1, x2, y2; cin >> x1 >> y1 >> x2 >> y2; cout<< dp[x2][y2] - dp[x1 - 1][y2] - dp[x2][y1 - 1] + dp[x1][y1]; } return 0; }
ps:我们矩阵是从(1,1)开始的因为会有越界的情况,相加就是dp[0][0]=0;相乘就是dp[0][0]=1;需要考虑边界情况;

Read more

From Pixels to Numbers: A Deep Dive into ISBN Recognition with OpenCV and C++

从像素到数字:基于OpenCV与C++的ISBN识别系统深度解析 1. 项目背景与核心挑战 在数字化浪潮席卷各行各业的今天,自动识别技术已成为连接物理世界与数字世界的重要桥梁。ISBN(国际标准书号)作为图书的唯一身份标识,其自动识别在图书馆管理、智能零售、出版发行等领域具有广泛应用价值。然而,传统OCR技术面对复杂背景、光照变化和倾斜变形等现实场景时,识别准确率往往难以满足实际需求。 本项目基于OpenCV和C++构建了一套完整的ISBN识别系统,通过精心设计的图像处理流水线,实现了从原始图像到数字编码的精准提取。系统在Visual Studio环境下开发,主要解决以下核心挑战: * 复杂背景干扰:图书封面通常包含丰富的色彩和图案 * 光照条件多变:不同环境下的亮度对比度差异显著 * 几何形变问题:拍摄角度导致的透视变形和旋转 * 字符分割困难:连笔、断笔等印刷质量问题 2. 技术架构与处理流程 2.1 系统整体架构 系统采用模块化设计,主要包含以下核心组件: class detectSolution { private: // 图像处理相关成员变量 Ma

By Ne0inhk
【C++STL】map与set(举例+详解,一文说懂)!

【C++STL】map与set(举例+详解,一文说懂)!

🌟个人主页:第七序章   🌈专栏系列:C++ 目录 ❄️前言: 一、☀️序列式容器与关联式容器 二、☀️键值对 三、☀️树形结构的关联式容器 四、☀️set 4.1 🌙set介绍  4.2 🌙set的构造和迭代器 4.3 🌙set的增删查 4.4 🌙insert和迭代器遍历使用样例  4.5 🌙find和erase使用样例 4.6 🌙multiset和set的差异 4.7 🌙set相关题目练习 五、☀️multiset 5.1 🌙multiset介绍 5.2 🌙multiset使用 六、☀️map 6.1 🌙map介绍 6.2

By Ne0inhk
《C++进阶之STL》【set/map 模拟实现】

《C++进阶之STL》【set/map 模拟实现】

【set/map 模拟实现】目录 * 前言: * ------------标准介绍------------ * 1. 标准库中的set/map是怎么实现的呢? * 2. 为什么需要两个模板参数(Key & Value)? * ------------模拟实现------------ * 头文件: * RBTree.h * Myset.h * Mymap.h * 测试文件:Test.cpp * 运行结果 * ------------基本操作------------ * 一、前置++操作 * 1. 本质 * 2. 步骤 * 3. 图示 * 4. 解释 * 二、前置--操作 * 1. 本质 * 2. 步骤 * 3. 图示 * 4. 解释 * ------------代码解释------------ * 片段一:

By Ne0inhk
C++分布式语音识别服务实践

C++分布式语音识别服务实践

基于 brpc+etcd + 百度 AI SDK 的分布式语音识别服务实践:从代码架构到踩坑复盘 一、项目背景与核心功能 最近基于 C++ 实现了一个分布式语音识别子服务,核心目标是提供高可用的 RPC 接口,支持客户端上传 PCM 音频文件并返回识别结果。技术栈选型如下: * RPC 框架:brpc(百度开源高性能 RPC 框架,支持多种协议); * 数据序列化:Protobuf(定义 RPC 接口和数据结构); * 服务注册与发现:etcd(分布式键值存储,实现服务上下线感知); * 语音识别能力:百度 AI 语音 SDK(提供成熟的 PCM 音频转文字能力); * 日志与配置:spdlog(高性能日志库)、gflags(命令行参数解析)。 项目分为服务端和客户端两部分:

By Ne0inhk