小魚比可愛(高精度)

2021-09-27 16:31:58 字數 1796 閱讀 8136

小魚比可愛

對 於區

間[l,

r]的逆

序對個數

,可能貢

獻多次,

發現正常

求逆序對

的操作是

離散化後

套樹狀數

組,每個

數的貢獻

為1,但

本題的逆

序對不直

貢獻一次

,又因為

[l,r

]會變化

,所以不

妨固定一

個值(固

定r),

在樹狀數

組中每次

加的貢獻

為(n−

i+1)

對於區間[l,r]的逆序對個數,可能貢獻多次,發現正常求逆序對的操作是離散化後套樹狀陣列,每個數的貢獻為1,但本題的逆序對不直貢獻一次,又因為[l,r]會變化,所以不妨固定乙個值(固定r),在樹狀陣列中每次加的貢獻為(n-i+1)

對於區間[l

,r]的

逆序對個

數,可能

貢獻多次

,發現正

常求逆序

對的操作

是離散化

後套樹狀

陣列,每

個數的貢

獻為1,

但本題的

逆序對不

直貢獻一

次,又因

為[l,

r]會變

化,所以

不妨固定

乙個值(

固定r)

,在樹狀

陣列中每

次加的貢

獻為(n

−i+1

)因為本題的資料大,所以應該用高精或__int128

#include

#define ll __int128

using

namespace std;

const

int n=

1000100

;ll n;

ll a[n]

,b[n]

;ll read()

for(

;'0'

<=c&&c<=

'9';c=

getchar()

) ans=

(ans<<3)

+(ans<<1)

+c-'0'

;return f*ans;

}void

print

(ll x)

putchar

(x%10

+'0');

}ll lowbit

(ll x)

ll tree[n]

;void

add(ll x,ll val)

ll get_ans

(ll x)

intmain()

sort

(b+1

,b+n+1)

; ll lon=

unique

(b+1

,b+n+1)

-b-1

;for

(ll i=

1;i<=n;i++

) a[i]

=lower_bound

(b+1

,b+lon+

1,a[i]

)-b;

add(a[n],1

);ll sum=0;

for(ll i=n-

1;i>=

1;i--

)print

(sum)

;}

小魚比可愛

人比人,氣死人 魚比魚,難死魚。小魚最近參加了乙個 比可愛 比賽,比的是每只魚的可愛程度。參賽的魚被從左到右排成一排,頭都朝向左邊,然後每只魚會得到乙個整數數值,表示這只魚的可愛程度,很顯然整數越大,表示這只魚越可愛,而且任意兩隻魚的可愛程度 color red 可能一樣 color 由於所有的魚頭...

小魚比可愛 題解

題目 題目描述 人比人,氣死人 魚比魚,難死魚。小魚最近參加了乙個 比可愛 比賽,比的是每只魚的可愛程度。參賽的魚被從左到右排成一排,頭都朝向左邊,然後每只魚會得到乙個整數數值,表示這只魚的可愛程度,很顯然整數越大,表示這只魚越可愛,而且任意兩隻魚的可愛程度可能一樣。由於所有的魚頭都朝向左邊,所以每...

P1428 小魚比可愛

題目描述 人比人,氣死人 魚比魚,難死魚。小魚最近參加了乙個 比可愛 比賽,比的是每只魚的可愛程度。參賽的魚被從左到右排成一排,頭都朝向左邊,然後每只魚會得到乙個整數數值,表示這只魚的可愛程度,很顯然整數越大,表示這只魚越可愛,而且任意兩隻魚的可愛程度 color red 可能一樣 color 由於...