思路:正著求一次逆序然後反著求一次,相乘就可以了
#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 思路 紅色水壺和藍色水壺比較,可在找到與...