1. 程式人生 > >【jzoj5343】【NOIP2017模擬9.3A組】【健美貓】

【jzoj5343】【NOIP2017模擬9.3A組】【健美貓】

description

這裡寫圖片描述

solution

可以把點投射到以i座標為x座標,以a[i]為y座標的二維平面,考慮維護兩條斜率為1直線,點到直線豎直距離和即為答案,分別為維護多少個點在直線上,用兩個桶維護即可,座標分別為到y=x豎直距離和到(n,0)曼哈頓距離。

code

#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#define LF double
#define LL long long
#define ULL unsigned LL
#define fo(i,j,k) for(LL i=j;i<=k;i++)
#define fd(i,j,k) for(LL i=j;i>=k;i--) #define fr(i,j) for(LL i=begin[j];i;i=next[i]) using namespace std; LL const mn=4*1e6+2,inf=1e9+7; LL n,a[mn],cnt[mn],cn2[mn]; LL read(){ char ch=getchar(); while((ch!='-')&&((ch<'0')||(ch>'9')))ch=getchar(); LL op,v=0; if(ch=='-'
)op=-1; else op=1,v=ch-'0'; ch=getchar(); while((ch>='0')&&(ch<='9'))v=v*10+ch-'0',ch=getchar(); return op*v; } int main(){ freopen("d.in","r",stdin); freopen("d.out","w",stdout); n=read(); fo(i,1,n)a[i]=read(); LL up=0,tmp=0; fo(i,1,n){ tmp+=abs
(a[i]-i); if(a[i]>i)cnt[a[i]-i]++; up+=a[i]>i; } LL ans=tmp,up2=0; fd(i,n,2){ tmp+=i-1-up*2; up-=cnt[n-i+1]; tmp+=a[i]+1-abs(a[i]-n-1); cn2[a[i]+n-i]++; up2++; tmp+=n-i+1-up2*2; up2-=cn2[n-i+1]; ans=min(ans,tmp); } printf("%lld",ans); return 0; }

相關推薦

jzoj5343NOIP2017模擬9.3A健美

description solution 可以把點投射到以i座標為x座標,以a[i]為y座標的二維平面,考慮維護兩條斜率為1直線,點到直線豎直距離和即為答案,分別為維護多少個點在直線上,用兩個桶

NOIP2017模擬9.3A摘果子

Description Input Output Sample Input 7 9 39 6 13 2 22 6 7 4 -19 5 28 6 -17 1 2 1

[JZOJ5344]NOIP2017模擬9.3A摘果子

Description Solution 樹形依賴揹包裸模型 F[i][j]表示表示DFS序上第i~N個已經做完了,重量為j F[i][j]=max(F[i+1][j−weight[

jzoj5340NOIP2017模擬9.2A春思

description solution 分解質因數然後等比數列求和,可能沒有逆元(本程式沒有處理這種情況),這時候需要特殊處理。 code #include<cstd

JZOJ5372.NOIP2017提高A模擬9.17鏈表+貪心+堆優化

margin targe sga gin bt5 ie8 usm shu auc x壹鼐順51比http://shequ.docin.com/txqq_cb3d1e346f 惹M3桓7O2疽http://www.docin.com/app/user/userinfo?use

jzojs 5384. NOIP2017提高A模擬9.23四維世界

Description 眾所周知,我們常感受的世界是三維的。 Polycarp突然對四維空間產生了興趣,他想對四維空間進行一些研究。但是在此之前,他必須先對三維世界瞭解透徹。 於是Polycarp決定從零維,也就是一個點,開始他的研究。我們把一個點放在三維空間中,Polycarp把這

JZOJ5353NOIP2017提高A模擬9.9村通網最小生成樹

題目大意: 題目連結:https://jzoj.net/senior/#main/show/5353 為了加快社會主義現代化,建設新農村,農夫約(Farmer Jo)決定給農莊裡每座建築都連上網際網路,方便未來隨時隨地網購農藥。 他的農莊很大,有N 座建築,但地理位置偏僻,網路訊號很

JZOJ5354NOIP2017提高A模擬9.9導彈攔截網路流DP

題目大意: 題目連結:https://jzoj.net/senior/#main/show/5354 某國為了防禦敵國的導彈襲擊,發展出一種導彈攔截系統。 敵國的導彈形成了立體打擊,每個導彈可以抽象成一個三維空間中的點(x; y; z)。攔截系統發射的炮彈也很好地應對了這種情況,每一

jzoj5346NOIP2017提高A模擬9.5NYG的揹包貪心

description solution 考慮貢獻為正的,顯然花費a最少先做,考慮貢獻為負的,可以將ab調轉過來,那顯然花費最少的先做,也就是b最小的先做。 code #include<

jzoj5389NOIP2017提高A模擬9.26解夢

description DYY 很善於解夢,昨晚,他夢見自己來到了一個高度發達的國度。 眾所周知,我們現在有極為常用的三級運算,+、、^。其中,a*b=a+a+a+…+a(b 個a),a^b=a

jzoj5360NOIP2017提高A模擬9.12Shorten Diameter

description 給定一棵有n 個點的樹,現要求不斷刪點直到樹的直徑<=K,求最少需要刪除的點數。 一個點可以被刪掉當且僅當該點的度數為1。 保證樹的形態為隨機生成(請勿過度解

JZOJ 5377. NOIP2017提高A模擬9.19開拓

Description Input Output Sample Input 5 50 50 10 1 10 1 20 2 10 2 20 1 30 Sam

jzoj5350NOIP2017提高A模擬9.7陶陶摘蘋果動態規劃

description solution 題目的意思是板凳不可重疊,資料不能直接摘蘋果。對蘋果排序,對凳子按r從小到大排序。設f[i][j]表示前i個凳子,選了j個,最後一個選了i的最大貢獻,列

JZOJ5384. NOIP2017提高A模擬9.23四維世界

Description 眾所周知,我們常感受的世界是三維的。 Polycarp突然對四維空間產生了興趣,他想對四維空間進行一些研究。但是在此之前,他必須先對三維世界瞭解透徹。 於是Polycarp決定從零維,也就是一個點,開始他的研究。我們把一個點放在三維

JZOJ5372. NOIP2017提高A模擬9.17 連結串列+貪心+堆優化

題意:一個長度為n的環,每個點有貢獻,取了一個就不能取他的相鄰,問取1-n/2個的最優方案是多少。 DP可能會掛,我自己試了試好像會出點問題= =畢竟是環,如果類似這種問題,不能拆環一般就不要DP。

NOIP2017模擬8.5隊伍統計

優先級 con isp pla cnblogs noip 技術分享 freopen 100% Description 現在有n個人要排成一列,編號為1->n 。但由於一些不明原因的關系,人與人之間可能存在一些矛盾關系,具體有m條矛盾關系(u,v),表示編號

NOIP2017模擬8.8Trip

關系 pan 根據 大於 二叉 計算 我們 else freopen Description 多年之後,worldwideD厭倦競爭,隱居山林。 他的家鄉開始發展起了旅遊業,在一條很長的主幹道上,有N個旅遊景點,按順序編號為1到N。根據遊客們

NOIP2016提高A模擬9.17小a的強迫癥

ret include sin main img int 我們 scanf can 題目 分析 題目要求第i種顏色的最後一個珠子要在第i+1種顏色的最後一個珠子之前, 那麽我們從小到大枚舉做到第i種,把第i種的最後一顆珠子取出,將剩下的\(num(i)-1\)個珠子插入已

NOIP2016提高A模擬9.15Osu

oid std lib 最大 algorithm ios d+ -a gin 題目 分析 考慮二分答案, 二分小數顯然是不可取的,那麽我們將所有可能的答案求出來,記錄在一個數組上,排個序(C++調用函數很容易超時,手打快排,時間復雜度約為\(O(>8*10^7)\)

NOIP2016提高A模擬9.17序列

log cstring 表示 inline space cst tdi n) sca 題目 分析 首先用\(a_i\)表示達到目標的步數\(B_i-A_i(mod 4)\) 根據粉刷柵欄,先不管mod 4的情況,答案就是\(\sum\max(a_i-a_{i+1},0)\