中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

重慶企業(yè)網(wǎng)站建設(shè)聯(lián)系電話公司網(wǎng)絡(luò)推廣的作用

重慶企業(yè)網(wǎng)站建設(shè)聯(lián)系電話,公司網(wǎng)絡(luò)推廣的作用,湛江網(wǎng)站如何制作,食品網(wǎng)站建設(shè)書👦個人主頁:Weraphael ?🏻作者簡介:目前正在學(xué)習(xí)c和算法 ??專欄:【C/C】算法 🐋 希望大家多多支持,咱一起進步!😁 如果文章有啥瑕疵 希望大佬指點一二 如果文章對你有…

在這里插入圖片描述

👦個人主頁:Weraphael
?🏻作者簡介:目前正在學(xué)習(xí)c++和算法
??專欄:【C/C++】算法
🐋 希望大家多多支持,咱一起進步!😁
如果文章有啥瑕疵
希望大佬指點一二
如果文章對你有幫助的話
歡迎 評論💬 點贊👍🏻 收藏 📂 加關(guān)注😍


目錄

  • 一、一維前綴和
      • 1.1 什么是一維前綴和
      • 1.2 如何求Sn
      • 1.3 用途
      • 1.4 代碼模板
      • 1.5 細節(jié)問題
  • 二、二維前綴和
      • 2.1 用途
      • 2.2 前綴和S[i][j]求法
      • 2.3 子矩陣求法
      • 2.4 代碼模板
  • 三、總結(jié)

一、一維前綴和

1.1 什么是一維前綴和

前綴和就是新建一個數(shù)組,數(shù)組中保存的是原數(shù)組前n項的和

【舉個例子】

  • Sn = a1+a2+a3+…an, Sn就是數(shù)列的前綴和(下標一定要從1開始,后面會講解原因)

在這里插入圖片描述

1.2 如何求Sn

我們可以利用上面的圖來找找規(guī)律

在這里插入圖片描述

  • S1 = a1
  • S2 = a1 + a2 = S1 + a2
  • S3 = a1 + a2 + a3 = S2 + a3
  • S4 = a1 + a2 + a3 + a4 = S3 + a4
  • S5 = a1 + a2 + a3 + a4 + a5 = S4 + a5
  • 這一套下來,前綴和的公式很明顯就是:Si = Si-1 + ai

【代碼】

for (int i = 1;i <= n;i++)
{s[i] = s[i-1] + a[i];
}

1.3 用途

能快速求出數(shù)列中某一段的和,時間復(fù)雜度為O(1)

還是要利用這幅圖

在這里插入圖片描述
假設(shè)我們要計算原數(shù)組a中區(qū)間[2,4]的和,我們就可以用S4 - S1

在這里插入圖片描述

  • 總結(jié):假設(shè)日后題目要求區(qū)間[l,r]的和,其實也能循環(huán)遍歷,不過時間復(fù)雜度是O(N),而前綴和的時間復(fù)雜度是O(1)
  • 計算區(qū)間[l,r]的和,其公式為Sr - Sl-1

1.4 代碼模板

#include <iostream>
using namespace std;const int N = 100010;
int a[N],s[n];int main()
{int n; //n - 原數(shù)組元素的個數(shù)scanf("%d",&n);//輸入原數(shù)組for (int i = 1;i <= n;i++) {scanf("%d",&a[i]);}//前綴和公式for (int i = 1;i <= n;i++){s[i] = s[i - 1] + a[i];}//以下是計算某段區(qū)間的和int l,r;scanf("%d%d",&l,&r);printf("%d\n",s[r] - s[l - 1]);return 0;
}

1.5 細節(jié)問題

  • 首先,下標從1開始就是為了定義S0,就拿前綴和公式來說,S[i] = S[i-1] + a[i],當(dāng)i = 1時,出現(xiàn)了S0,而S0要及時置為0,原因是為了統(tǒng)一。舉個例子,假設(shè)要計算區(qū)間[1,10]之間的和,明眼就能看出是要計算S10,而為了達到統(tǒng)一計算的效果,S10 - S0 = S10 - 0.
  • 為什么我在代碼中沒有定義S[0]=0,原因是我將s[N]定成了全局變量,而全局變量有一個特點:默認初始化為0!

二、二維前綴和

2.1 用途

目的是求出一個矩陣中某一個小矩陣的和

2.2 前綴和S[i][j]求法

大家畫圖可能會更加容易理解點,假設(shè)點(i,j)在矩陣的正中心,S[i][j] 即為黃色部分所有數(shù)的的和

在這里插入圖片描述

我們可以分三步求出黃色部分的和

  • 第一步先求出紅色部分所有數(shù)的和

在這里插入圖片描述

列出式子:S[i][j] = S[i][j-1] + ...

  • 第二步再求出綠色部分所有數(shù)的和

在這里插入圖片描述

列出式子:S[i][j] = S[i][j-1] + S[i-1][j] + ...

  • 第三步去重,因為前兩部重復(fù)加上了黑色部分所有數(shù)的和,因此要減掉一次

在這里插入圖片描述

最后別忘了加上了本身:a[i][j]
列出式子:S[i][j] = S[i][j-1] + S[i-1][j] - S[i-1][j-1] + a[i][j]

2.3 子矩陣求法

假設(shè)要求左上角為(x1,y1),右下角為(x2,y2)所圍成黃色部分所有數(shù)的和

在這里插入圖片描述

子矩陣的求法和求S[i][j]是類似的,四步走

  • 第一步,先求出紅色部分圍成所有數(shù)的和

在這里插入圖片描述

列出式子:S = S[x2][y2] - ...

  • 第二步,在用上一步紅色部分減去綠色部分所有數(shù)的和

在這里插入圖片描述

列出式子:S = S[x2][y2] - S[x1 - 1][y2] - ...

  • 第三步,再減去灰色部分所有數(shù)的和

在這里插入圖片描述

列出式子:S = S[x2][y2] - S[x1 - 1][y2] - S[x2][y1 - 1] + ...

  • 第四步去重,因為前兩部重復(fù)減去了紫色部分所有數(shù)的和,因此要加上一次

在這里插入圖片描述

列出式子:S = S[x2][y2] - S[x1 - 1][y2] - S[x2][y1 - 1] + S[x1 - 1][y1 - 1]

2.4 代碼模板

#include <iostream>
using namespace std;const int N = 10010;
int n, m;
int a[N][N],s[N][N];int main()
{scanf("%d%d%d", &n, &m); //n -行 m - 列//輸入數(shù)組for (int i = 1; i <= n; i ++ )for (int j = 1; j <= m; j ++ )scanf("%d", &a[i][j]);//二維前綴和公式for (int i = 1; i <= n; i ++ )for (int j = 1; j <= m; j ++ )s[i][j] = s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1] + a[i][j];//求子矩陣int x1, y1, x2, y2;scanf("%d%d%d%d", &x1, &y1, &x2, &y2);printf("%d\n", s[x2][y2] - s[x1 - 1][y2] - s[x2][y1 - 1] + s[x1 - 1][y1 - 1]);return 0;
}

三、總結(jié)

其實大家只要背下前綴和公式就好了

  • 一維前綴和公式:S[i]= S[i-1] + a[i]
  • 求某段區(qū)間[l,r]: S[r]- S[l-1]

  • 二維前綴和公式:S[i][j] = S[i][j-1] + S[i-1][j] - S[i-1][j-1] + a[i][j]
  • 求子矩陣公式:S = S[x2][y2] - S[x1 - 1][y2] - S[x2][y1 - 1] + S[x1 - 1][y1 - 1]
http://www.risenshineclean.com/news/4308.html

相關(guān)文章:

  • 網(wǎng)站關(guān)鍵詞優(yōu)化方法西安優(yōu)化外
  • 青島網(wǎng)站開發(fā)公司一份完整的電商運營方案
  • lazada網(wǎng)站seo運營
  • 海外公司網(wǎng)站 國內(nèi)做備案美國婚戀網(wǎng)站排名
  • 注冊個人網(wǎng)站要多少錢寧波關(guān)鍵詞優(yōu)化時間
  • 電子商務(wù)網(wǎng)站建設(shè)漢獅網(wǎng)站權(quán)重查詢工具
  • 淮安做網(wǎng)站的有多少站長之家音效
  • 小程序加盟平臺快速排名優(yōu)化
  • 免費php網(wǎng)站模板下載北京百度推廣電話號碼
  • 有個在家做的客服網(wǎng)站營銷型網(wǎng)站建站推廣
  • 網(wǎng)站標題分隔符搜索引擎競價排名
  • 地產(chǎn)公司做網(wǎng)站維護寫代碼么莆田百度seo公司
  • wordpress密碼忘記了百度問答優(yōu)化
  • 宿州網(wǎng)站建設(shè)哪家公司好新聞軟文范例大全
  • 可信賴的武漢網(wǎng)站建設(shè)信息如何優(yōu)化上百度首頁公司
  • 網(wǎng)站建設(shè)如何交稅南京seo報價
  • 校園網(wǎng)站設(shè)計全網(wǎng)seo優(yōu)化電話
  • 如何做屬于自己的領(lǐng)券網(wǎng)站長安seo排名優(yōu)化培訓(xùn)
  • 新鄭做網(wǎng)站seo專業(yè)培訓(xùn)費用
  • 南昌網(wǎng)站設(shè)計制作品牌推廣文案
  • 網(wǎng)站百度不收錄怎么做好網(wǎng)絡(luò)銷售
  • 做網(wǎng)站建設(shè)銷售員準備什么企業(yè)培訓(xùn)課程設(shè)置
  • 百度廣告搜索推廣江蘇網(wǎng)站seo
  • 地稅城市維護建設(shè)稅網(wǎng)站是什么3a汽車集團公司網(wǎng)絡(luò)營銷方案
  • 免費可商用素材網(wǎng)站云浮seo
  • 哪些大型網(wǎng)站用python做的it培訓(xùn)班學(xué)出來有用嗎
  • 找做牙工作上哪個網(wǎng)站百度站長鏈接提交
  • 中山公司做網(wǎng)站手機優(yōu)化軟件排行
  • wordpress app展示做網(wǎng)站優(yōu)化的公司
  • 網(wǎng)站模板怎么打開近期時政熱點新聞20條