HDU 4000 樹狀陣列

2022-05-02 21:54:08 字數 671 閱讀 7410

題目大意:給出n個數,求(x

解題思路:

題目資料量很大,暴力肯定不行的。

設現在出現的位置為x,後面比它大的數有s個。s個選兩個(y,z)有s*(s-1)/2種。此時yz無序。

然後按題目要求x

1 #include 2 #include 3 #include 4 #include 5

using

namespace

std;67

const

int maxn=100005;8

const

int mod=100000007;9

intbit[maxn];

10int

n;11

12int lowbit(int

x)13

1617

void add(int x, int

val)

1824}25

26int sum(int

x)27

34return

cnt;35}

3637

intmain()

3856 printf("

case #%d: %d\n

",++tcase,ans%mod);57}

58return0;

59 }

hdu 4000 樹狀陣列

題意大致為 給乙個1 n的序列,求有序數對 x,y,z 其中x通過樹狀陣列可以得到a i 的後面含有的大於a i 的數的個數,假設個數為high,那麼有序數對 x,y,z 其中 x對於乙個數y,x include include using namespace std define mod 1000...

hdu4000樹狀陣列

給出n個數,求所有的i 題目也就是讓最後那個數第二大。我們輸入第i個數字a,那麼我們用的樹狀陣列存的就是sum a 1 sum a 1 表示在a這個位置,在前i 1個數中,有sum a 1 個數比a小,那麼我們就可以求出在後面的 i 1,n 的序列中,有r n a i 1 sum a 1 個數比a要...

HDU4000 Fruit Ninja(樹狀陣列)

嗯 這題是個標題黨 媽蛋其實大部分題目都是標題黨啊我發現。一開始不會做,即便empty大神提示說這是個樹狀陣列的題目 給empty大人丟臉了 事後empty大神狠狠得指責了我。嗯 說正事,這題得求和 求出某個數之後的,比它大的數的個數n,這樣形成的組合就是c n,2 然後再減去三個順次增大的,就得到...