c++重要知識點匯總(不定期更新)

前言

真心希望各位dalao點贊+收藏~

樹狀數組

作用:高效求出區間前綴和,允許進行修改操作。 舉個栗子: 剛開始有8項,分別為1-8。 首先構建二叉樹:

			   1-8/ |/  |/   |/    |/     |1-4     5-8/ |	    / |/  |    /  |1-2 3-4 5-6 7-8/ | / | / | / |1  2 3 4 5 6 7 8

設x為第i個數所在的層數,顯然2,4,6,8,3-4,7-8沒有任何用處,因為其他t[i](僅需<2^i個)表示樹狀數組去掉不需要的數組后第i項的值。

void add(int x,int p){while(x<=n){c[x]+=p;//x為下標,c[x]包含x[原來初始的下標x] x+=lowbit(x);//lowbit為轉成二進制從后往前第一個為1的值(那一位的權值)}
}

(暴力求解,每次輸入一個值都進行如上時間復雜度為O(log n)的操作(只加了當前這個值),時間復雜度O(n log n),空間復雜度O(n))?

void build(){for(int i=1;i<=n;i++){t[i]+=a[i];//t[i]肯定包含a[i],而且以前一定沒加上,所以要加上t[i+(i&-i)/*相當于lowbit(i)*/]+=t[i];//直接加到上級祖先}
}

(優化求解,直接一次性加給他的祖先,時間復雜度O(n),空間復雜度O(2n))?

以上兩種建樹方法各有優劣,相當于一個時間空間互換的過程。?

拓展類型1: 1.求逆序數(對)問題 逆序數是指在第i個數前有多少個>第i個數的數。

樹狀數組的作用是求出前綴和, 所以我們可以使用類似于桶排序的原理,桶[i]表示i在此時出現的次數。

只需要求第i個數的時候就把桶[第i個數]++就可以了。

PS:一般用離散化使其空間復雜度變小且下標連續。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/81227.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/81227.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/81227.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Predict Podcast Listening Time-(回歸+特征工程+xgb)

Predict Podcast Listening Time 題意&#xff1a; 給你沒個播客的信息&#xff0c;讓你預測觀眾的聆聽時間。 數據處理&#xff1a; 1.構造新特征收聽效率進行分組 2.對數據異常處理 3.對時間情緒等進行數值編碼 4.求某特征值求多項式特征 5.生成特征組合 6.交叉驗證并enc…

Class類的詳細說明

Class類的詳細說明 Class 類是Java反射機制的核心&#xff0c;每個Java類或接口在JVM中都有一個對應的 Class 對象&#xff0c;用于表示該類的元數據&#xff08;如類名、方法、字段、構造器等&#xff09;。以下是其核心知識點&#xff1a; 1. 獲取Class對象的三種方式 方式…

[逆向工程]C++實現DLL注入:原理、實現與防御全解析(二十五)

[逆向工程]C實現DLL注入&#xff1a;原理、實現與防御全解析&#xff08;二十五&#xff09; 引言 DLL注入&#xff08;DLL Injection&#xff09;是Windows系統下實現進程間通信、功能擴展、監控調試的核心技術之一。本文將從原理分析、代碼實現、實戰調試到防御方案&#x…

【ROS2實戰】在中國地區 Ubuntu 22.04 上安裝 ROS 2 Humble 教程

本文介紹如何在中國大陸環境下順利安裝 ROS 2 Humble&#xff0c;包括使用清華鏡像源、解決 locale 和 GPG 密鑰問題、安裝 ROS 軟件包以及配置自動環境加載。 &#x1f31f; ROS 2 版本簡介 ROS 2 是機器人操作系統的第二代版本&#xff0c;目前主要有兩個長期支持&#xff0…

嵌入式學習筆記 - STM32 ADC 模塊工作模式總結

ADC 模式總結&#xff1a; 一 單ADC模式&#xff08;是指ADC1,ADC2,ADC3中只有一個ADC被使用&#xff09; ①單通道&#xff1a; 非連續模式&#xff1a;非連續的意思就是單次&#xff0c;一次轉換完成后就停止轉換&#xff0c;除非再次被軟件或者被外部觸發啟動&#xff1b…

Python訓練打卡Day26

函數專題1&#xff1a;函數定義與參數 知識點回顧&#xff1a; 函數的定義變量作用域&#xff1a;局部變量和全局變量函數的參數類型&#xff1a;位置參數、默認參數、不定參數傳遞參數的手段&#xff1a;關鍵詞參數傳遞參數的順序&#xff1a;同時出現三種參數類型時 到目前為…

使用Docker部署Nacos

sudo systemctl start docker sudo systemctl enable docker docker --version 步驟 2: 拉取 Nacos Docker 鏡像 拉取 Nacos 鏡像&#xff1a; 你可以從 Docker Hub 上拉取官方的 Nacos 鏡像&#xff0c;使用以下命令&#xff1a; docker pull nacos/nacos-server 這會從 …

Ubuntu 添加系統調用

實驗內容 通過內核編譯法添加一個不用傳遞參數的系統調用&#xff0c;其功能可自定義。 &#xff08;1&#xff09;添加系統調用號&#xff0c;系統會根據這個號找到syscall_table中的相應表項。具體做法是在syscall_64.tbl文件中添加系統調用號和調用函數的對應關系。 &#…

Javascript:WebAPI

獲取網頁元素 queryselector queryselector是 JavaScript 中用于選擇 DOM 元素的重要方法&#xff0c;它允許使用 CSS 選擇器語法來查找頁面中的元素。 一般queryselector獲取的元素都是html中第一個選擇器的元素 支持選擇器類型&#xff1a;類選擇器(.class) &#xff0c…

十二、Hive 函數

作者&#xff1a;IvanCodes 日期&#xff1a;2025年5月1日 專欄&#xff1a;Hive教程 在數據處理的廣闊天地中&#xff0c;我們常常需要對數據進行轉換、計算、清洗或提取特定信息。Hive 提供了強大的內置運算符和豐富的內置函數庫&#xff0c;它們就像魔法師手中的魔法棒&…

Linux之Nginx安裝及配置原理篇(一)

Nginx安裝及配置 前情回顧 首先針對Nginx進程模型&#xff0c;我們回顧一下它的原理機制&#xff0c;我們知道它是通過Master通過fork分發任務節點給予work節點&#xff0c;然后work節點觸發了event事件&#xff0c;之后通過一個access_muttex互斥鎖&#xff0c;來單線程調用我…

嵌入式培訓之數據結構學習(五)棧與隊列

一、棧 &#xff08;一&#xff09;棧的基本概念 1、棧的定義&#xff1a; 注&#xff1a;線性表中的棧在堆區&#xff08;因為是malloc來的&#xff09;&#xff1b;系統中的棧區存儲局部變量、函數形參、函數返回值地址。 2、棧頂和棧底&#xff1a; 允許插入和刪除的一端…

深度學習---知識蒸餾(Knowledge Distillation, KD)

一、知識蒸餾的本質與起源 定義&#xff1a; 知識蒸餾是一種模型壓縮與遷移技術&#xff0c;通過將復雜高性能的教師模型&#xff08;Teacher Model&#xff09;所學的“知識”遷移到輕量級的學生模型&#xff08;Student Model&#xff09;&#xff0c;使學生模型在參數量和計…

ARP Detection MAC-Address Static

一、ARP Detection&#xff08;ARP檢測&#xff09; ? 定義&#xff1a; ARP檢測是一種防止ARP欺騙攻擊的安全機制。它通過監控或驗證網絡中的ARP報文&#xff0c;來判斷是否存在偽造的ARP信息。 &#x1f50d; 工作原理&#xff1a; 網絡設備&#xff08;如交換機&#xf…

基于 Python 的界面程序復現:標準干涉槽型設計計算及仿真

基于 Python 的界面程序復現&#xff1a;標準干涉槽型設計計算及仿真 在工業設計與制造領域&#xff0c;刀具的設計與優化是提高生產效率和產品質量的關鍵環節之一。本文將介紹如何使用 Python 復現一個用于標準干涉槽型設計計算及仿真的界面程序&#xff0c;旨在幫助工程師和…

Python繪制南丁格爾玫瑰圖:從入門到實戰

Python繪制南丁格爾玫瑰圖&#xff1a;從入門到實戰 引言 南丁格爾玫瑰圖&#xff08;Nightingale Rose Chart&#xff09;&#xff0c;也被稱為極區圖&#xff08;Polar Area Chart&#xff09;&#xff0c;是一種獨特的數據可視化方式。這種圖表由弗洛倫斯南丁格爾&#xff…

計算機操作系統概要

不謀萬世者&#xff0c;不?謀?時。不謀全局者 &#xff0c;足謀?域 。 ——陳澹然《寤?》《遷都建藩議》 操作系統 一.對文件簡單操作的常用基礎指令 ls ls 選項 目錄或?件名:羅列當前?錄下的?件 -l&#xff1a;以長格式顯示?件和?錄的詳細信息 -a 或 --all&…

<PLC><視覺><機器人>基于海康威視視覺檢測和UR機械臂,如何實現N點標定?

前言 本系列是關于PLC相關的博文,包括PLC編程、PLC與上位機通訊、PLC與下位驅動、儀器儀表等通訊、PLC指令解析等相關內容。 PLC品牌包括但不限于西門子、三菱等國外品牌,匯川、信捷等國內品牌。 除了PLC為主要內容外,相關設備如觸摸屏(HMI)、交換機等工控產品,如果有…

從專家編碼到神經網絡學習:DTM 的符號操作新范式

1st author: Paul Soulos paper: Differentiable Tree Operations Promote Compositional Generalization ICML 2023 code: psoulos/dtm: Differentiable Tree Machine 1. 問題與思路 現代深度學習在連續向量空間中取得了巨大成功&#xff0c;然而在處理具有顯式結構&#x…

微信小程序第三方代開發模式技術調研與實踐總結

?? 微信小程序第三方代開發模式技術調研與實踐總結 ?? 前言 隨著企業對私有化品牌運營訴求的增加,許多大型客戶希望將原本由 SaaS 平臺統一提供的小程序遷移至自有主體(AppID)下運行,同時又希望繼續沿用 SaaS 平臺的業務服務與數據托管方式。微信開放平臺提供的“小程…