UESTC 841 休生傷杜景死驚開(樹狀陣列)

2021-07-14 16:08:59 字數 901 閱讀 9034

思路:正著求一次逆序然後反著求一次,相乘就可以了

#includeusing namespace std;

#define ll long long

const int maxn = 50000+500;

ll ans1[maxn],ans2[maxn];

int c[maxn],a[maxn];

int lowbit(int x)

void update(int i,int d)

for(int i = 1;i<=n;i++)

ans+=ans1[i]*ans2[i];

printf("%lld\n",ans);

}}

description

陸伯言軍陷八卦陣之中,分明只是一條直路,卻怎的也走不到盡頭。陣中盡是石堆,以某一石堆為參考,無論向走還是向右,總是會回到出發的石堆,最後幸得一黃姓老翁帶路才得脫出。

陸伯言逃離八卦陣後,來到山頂觀察此陣,記從左往右第i堆石堆的高度為$a_i$,發現任何兩堆較矮的石堆都能和它們之間的一座較高的石堆形成"八卦鎖」,將其中之人牢牢鎖住,無從逃脫。

根據石堆的情況,陸伯言大致計算了「八卦鎖」的數量(即 $a_i < a\_j > a_k,i「有勞岳父了。」 「為何將其放走?」 「…一表人才,何必浪費於此。」

input

第一行乙個整數$n$,表示石堆堆數。

接下來一行,$n$個整數,第$i$個數表示從左到右第$i$堆石堆的高度$a_i$。

$1 \leq n \leq 50000,1 \leq a_i \leq 32768$

output

乙個整數,「八陣鎖」的數目。

sample input

5 1 2 3 4 1

sample output

UESTC 我要長高

題意是 就是題目描述的那樣了吧 題意很顯而易見,一眼dp題 dp i j 代表第i個人身高為j時的最小消耗,dp i j min dp i 1 k abs j k c j h i 2 複雜度o n h i 2 很明顯有點大,學習了一下單調佇列優化dp之後,發現形如dp i min max dp j ...

8 4 攻擊防禦

8.4攻擊防禦 8.4.1訪問控制 沒有預先經過授權就使用網路資源即被視為非授權訪問,這是任何網路都會面臨的最常見的風險之一。為了抵禦非授權訪問,應在內外網物理隔離的基礎上,部署多級的訪問控制體系,這樣將有利於最大限度地防範對不同系統 不同業務的資訊資源的非授權訪問,實現對各網路節點的保護,避免單個...

演算法導論8 4

問題 n個紅色水壺和n個藍色水壺,相同顏色水壺可盛的水都不一樣多,但每乙個紅色水壺都有乙個對應的藍色水壺,二者可盛的水一樣多。不同顏色的水壺可以互相比較判斷可盛的水是否一樣多。但是相同顏色的水壺不能相互比較。設計乙個隨機演算法,其期望的比較次數為o nlgn 思路 紅色水壺和藍色水壺比較,可在找到與...