中國石油大學OJ 第五場個人訓練賽 小奇遐想

2021-08-21 21:31:13 字數 1341 閱讀 4440

時間限制: 1 sec  記憶體限制: 128 mb

提交: 421  解決: 106

[提交] [狀態] [討論版] [命題人:admin]

題目描述

擷來一縷清風飄渺

方知今日書信未到

窗外三月天霽垂柳新長枝條

風中鳥啼猶帶歡笑

——《清風醉夢》

小奇望著青天中的悠悠白雲,開始了無限的遐想,在它的視野中,恰好有n朵高度不同的白雲排成一排,他想從左到右選出四朵白雲a,b,c,d,使得h_a輸入

第一行包括1個整數n。

第二行包括n個整數,第i個正數表示h_i,保證這n個整數是n的乙個全排列。

輸出輸出乙個整數表示答案。(mod 16777216)

樣例輸入

5

1 5 3 2 4

樣例輸出

0
提示

對於10%的資料n<=600;對於40%的資料n<=5000;

對於100%的資料n<=200000。

題解:詢問1243的種類數,問題可以轉換成12xx-1234,預處理每個位置的數字左邊比它小的數字的個數l[i]和右邊比它大的數字的個數r[i],那麼12xx就可以列舉每個位置然後l[i]*c(2,r[i]),求和即可。1234則列舉3的位置讓樹狀陣列處理12的個數*r[i]求和即可。

其中樹狀陣列預處理左邊比它小的個數,訪問到每個數字的時候在a[i]處add(1)即可,然後每次query(a[i])就是左邊比它小的數字的個數。對於1234來說就直接對於每個位置add(a[i],l[i]),每個數字將左邊的1的個數用樹狀陣列維護

#include using namespace std;

typedef long long ll;

const int mod=16777216;

const int maxn=1e6+7;

ll a[maxn],n;

ll tree[maxn],lmin[maxn],rmin[maxn];

void add(int x,ll val)

ll query(int x)

void make_wen()

ll tot=0;

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

tot=(tot+lmin[i]*(n-i-rmin[i])*(n-i-rmin[i]-1)/2)%mod;

memset(tree,0,sizeof(tree));

ll res=0;

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

printf("%lld\n",(tot-res+mod)%mod);

}int main()

中國石油大學(華東)OJ題目的HTML爬取

這幾天刷華東oj的題,寫部落格還要複製html的 感覺麻煩的一批,然後就去摸魚寫了個小爬蟲。輸入詳細的pid cid或id即可爬取相應的html 關鍵的還是登陸問題,程式需要在同資料夾下新增乙個 headers.csv 檔案用於更新和儲存cookie,內容包括瀏覽器標頭和cookie就好。也可以看我...

中國石油大學新生訓練賽第四場 Dominoc

alice最近在玩多公尺諾骨牌,她突發奇想,想用她的骨牌去鋪乙個2 n的長方形。alice的骨牌是1 2的長方形木片,在鋪骨牌的過程中她希望能滿足如下要求 1.骨牌必須橫向或豎向放置 2.骨牌不能超出2 n的長方形的邊界 3.骨牌之間不能有重疊 4.骨牌需要將長方形鋪滿 即,鋪2 n的長方形需要用n...

UPC 中國石油大學OJ AC百題留念。

不知不覺,從九月份入校,十月份開始接觸acm,到如今已然七個月份,二百餘天。在這些時日裡,有新生賽拿第一受到獎勵的甜,也有在面對其他高校的學員然後被吊打的苦悶,有ac的喜悅,也有無盡wa,tle的糾纏。現在回首望去,二百餘天就這麼悄然的從指間溜走了,悄然不覺。在這個僅幾平方公尺的小房間中,清洗自己,...