2020 01 27日常總結

2021-10-02 09:37:29 字數 2555 閱讀 4925

【題意

】:

\color

【題意】

erwin最近對一種叫thair的東西巨感興趣……

在含有n

nn個整數的序列a1,

a2..

.a

na_1,a_2...a_n

a1​,a2

​...

an​中,

三個數被稱作thair當且僅當i

<

j

i<

ji

a_iai

​​​。

求乙個序列中thair的個數。

【 思路

】:

\color

【思路】

: 像這種,考慮三個數之間的關係的題目,我們可以從中間元素入手。

記l ef

ti

left_i

lefti​

表示第i

ii個數左邊小於它的數的個數,rig

ht

iright_i

righti

​表示第i

ii個數右邊大於它的數的個數。不難發現,總答案ans

ansan

s滿足:

a ns

=∑i=

1nle

fti×

righ

ti

ans=\sum\limits_^left_i \times right_i

ans=i=

1∑n​

left

i​×r

ight

i​既然如此,我們就可以用樹狀數

組\color

樹狀陣列

來求出lef

tleft

left

和r ig

ht

right

righ

t。總的時間複雜度為o(n

×log⁡n

)o(n \times \log n)

o(n×

logn)。

需要注意的是,因為a

aa的取值範圍太大,所以我們先要對它進行離散化

\color

離散化。

【 程式碼

】:

\color

【程式碼】

const

int n=

30100

;struct nodea[n]

;int n,m,c[2]

[n];

inline

bool

cmp1

(node a,node b)

inline

bool

cmp2

(node a,node b)

inline

intf

(int x)

//相當於樹狀陣列的lowbit函式

typedef

long

long ll;

inline

void

updata

(int x,

int p)

//樹狀陣列的修改操作

inline

intquery

(int x,

int p)

//樹狀陣列的求字首和操作

int left[n]

,right[n]

;ll ans;

intmain()

// 從第33行到第40行為離散化操作

sort

(a+1

,a+n+

1,cmp1)

; a[1]

.number=1;

for(

int i=

2;i<=n;i++)if

(a[i]

.num!=a[i-1]

.num)

a[i]

.number=a[i-1]

.number+1;

else a[i]

.number=a[i-1]

.number;

m=a[n]

.number;

sort

(a+1

,a+n+

1,cmp2)

;for

(int i=

1;i<=n;i++

)//求left陣列

for(

int i=n;i;i--

)//求right陣列,通過減法把求大於乙個數的數的個數操作轉化為了求小於該數的數的個數的操作

for(

int i=

1;i<=n;i++

)//計算ans,注意中間結果不要溢位

ans+

=(ll)left[i]

*right[i]

;printf

("%lld"

,ans)

;return0;

}

2019 08 18 日常總結

一本通1599 題意 在一年前贏得了小鎮的最佳草坪比賽後,fj 變得很懶,再也沒有修剪過草坪。現在,新一輪的最佳草坪比賽又開始了,fj 希望能夠再次奪冠。然而,fj 的草坪非常髒亂,因此,fj 只能夠讓他的奶牛來完成這項工作。fj 有 nn 只排成一排的奶牛,編號為 11 到 nn。每只奶牛的效率是...

5059日常總結

1.乙個函式的形參是const char 實參是可以是char 如果乙個函式的返回值是const char 不能用char 來接收返回值 2.為什麼沒有靜態的建構函式和析構函式?建構函式成員函式使用現有分配構造指定的物件 即存在this。static成員函式指定物件沒有儲存,因此沒有關聯的例項要構造...

2019 10 01日常總結

前言 今天是祖國母親70歲生日,請允許我向祖國母親說一聲 生日快樂!願您永遠繁榮昌盛 山清水秀!題意 松鼠的新家是一棵樹,前幾天剛剛裝修了新家,新家有n nn個房間,並且有n 1 n 1n 1根樹枝連線,每個房間都可以相互到達,且倆個房間之間的路線都是唯一的。天哪,他居然真的住在 樹 上。松鼠想邀請...