第二週學習

2021-10-17 19:13:56 字數 1884 閱讀 2401

二、字首和與差分

三、位運算

二分查詢是一種演算法,其輸入是乙個有序的元素列表(必須是有序的),查詢的元素包含在列表中,二分查詢返回其位置``

int

find

(int x)

if(a[r]

==x)

return r;

else

return-1

;}void

find

(int a[n]

,int x)

if(a[l]

==x)

cout<<

"尋找成功且該數的下標為 "

<

else

cout<<

"-1"

;}

例題:求乙個數的三次方更根(10000內)

#include

#include

double x;

using

namespace std;

intmain()

printf

("%.3lf"

,l);

}

一維字首和 b[i]=b[i-1]+a[i]

二維字首和 b[x][y]=b[x-1][y]+b[x][y-1]-b[x-1][y-1]+a[x][y]

s[i, j] = 第i行j列格仔左上部分所有元素的和以(x1, y1)為左上角,(x2, y2)為右下角的子矩陣的和為:

s[x2, y2] - s[x1 - 1, y2] - s[x2, y1 - 1] + s[x1 - 1,y1-1]

差分就是將數列中的每一項分別與前一項數做差

1、差分序列求字首和可得原序列

2、將原序列區間[l,r]中的元素全部+1,可以轉化操作為差分序列l處+1,r+1處-1

3、按照性質2得到,每次修改原序列乙個區間+1,那麼每次差分序列修改處增加的和減少的相同

例題輸入格式

第一行有兩個整數n,p,代表學生數與增加分數的次數。

第二行有n個數,a1~an,代表各個學生的初始成績。

接下來p行,每行有三個數,x,y,z,代表給第x個到第y個學生每人增加z分。

輸出格式

輸出僅一行,代表更改分數後,全班的最低分。

#include

#include

using

namespace std;

const

int n=

6000000

;int a[n]

,s[n]

,c[n]

;int n,m;

int t=

1<<30;

intmain()

while

(m--

)for

(int i=

1;i<=n;i++

)printf

("%d"

,t);

return0;

}

二維差分

給以(x1, y1)為左上角,(x2, y2)為右下角的子矩陣中的所有元素加上c:

補碼:1:如果是正數:正數的補碼就等於原碼。 00000… 111

2:如果是負數:負數的補碼就是在反碼的基礎上加1: 11111. 000 +1=01111… 001

左移: 1右移:1>>x1001001421相當於除以2i

暑假學習第二週

轉眼已經過去了兩周,學習到不少的東西,仍然感覺自己自己是乙個小白,什麼都不知道,現在至少對python的類 模組和函式有了比較深刻的理解。這週前幾天 主要看了函式和函式式程式設計,比較深刻的理解了一下函式的用法和寫法。模組這塊也細心的看了看,了解了如何去匯入乙個模組以及模組的部分特性,自己覺得pyh...

Linux 學習第二週

第二週的學習就有些進展了,因為在這段時間裡,我開始接觸並使用centos了!剛剛開啟文字介面的時候,我的內心可是異常的興奮啊!那個時候我才感覺到 書上的東西是有用的 原諒我以前認為看書沒什麼太大意義 當時我馬上翻開書,照葫蘆畫瓢 就開始寫命令,玩的不亦樂乎。現在我已經基本了解了檔案的一些基本屬性和許...

第二週學習筆記

從課堂上的內容大體可以歸為如上,概念模型因為在具體使用當中較少接觸故簡單介紹其優點。下面將用較大篇幅詳細討論e r模型的實際使用和visio表示的意義。首先,要明白圖表中不同方框代表什麼,方框代表實體,而橢圓框代表屬性,那麼什麼是實體什麼又是屬性呢,那讓我們用乙個簡單的關係圖表來了解一下。這是乙個典...